1. Список говнокодов пользователя gpr

    Всего: 4

  2. Си / Говнокод #17590

    +109

    1. 1
    memcpy (stderr, stdout, sizeof (FILE));

    gpr, 06 Февраля 2015

    Комментарии (25)
  3. C++ / Говнокод #13616

    +83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    typedef map<string,string> keys_map;
    ...
    const keys_map::const_iterator SectionData::operator[](int Index) const
    {                                                                     
            keys_map::const_iterator it=m_Keys.begin();                   
            int cnt=0;
            for(;it!=m_Keys.end(); it++)                                  
            {
                    if(cnt==Index)                                        
                            return it;                                    
                    cnt++;  
            }       
            return (keys_map::const_iterator)NULL;                        
    }
    ...
    SectionData section;
    keys_map::::const_iterator iter;
    for (i=0; i<section.GetSize(); i++) {
            iter = section[i];
            ...
    }

    правильный способ итерироваться по мапу

    gpr, 16 Августа 2013

    Комментарии (2)
  4. C++ / Говнокод #3411

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Allow* AccessSection::check(CONNECTION * connection, char *username, char *password)
    {
    ...
                    if (current->username != "" && username != "" && current->username != username)
                            continue;
    ...

    Кусок кода из прокси-сервера Shweby

    gpr, 07 Июня 2010

    Комментарии (14)
  5. C++ / Говнокод #3401

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    //sort rr
        unsigned int i = 0;
        unsigned int random = time(NULL);
        unsigned int nummx = rr->size();
        while (nummx > 0){
            unsigned long numsame=1;
            i = 0;
            for (unsigned int j = 1;j < nummx;++j)
                if ((*rr)[j].m_pref > (*rr)[i].m_pref){
                    i = j;
                    numsame = 1;
                }else if ((*rr)[j].m_pref == (*rr)[i].m_pref){
                    ++numsame;
                    random = random * 69069 + 1;
                    if ((random / 2) < (2147483647 / numsame))
                        i = j;
                }
            swap((*rr)[i],(*rr)[--nummx]);
        }

    Что делает код - достоверно неизвестно. Скорее всего, что-то сортирует и одновременно перемешивает.

    gpr, 05 Июня 2010

    Комментарии (94)