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

    Всего: 94

  2. C++ / Говнокод #13914

    +8

    1. 1
    2. 2
    3. 3
    4. 4
    n = strlen(pName);
    name = new char[n + 1];
    memset(name, 0, n + 1);
    memcpy(name, pName, n);

    боянчик. std::string наверное религия не позволяет. а strdup() слишком С. oh wait...

    Dummy00001, 09 Октября 2013

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

    +8

    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
    22. 22
    23. 23
    const Registry & Registry::getInstance()
    {
    	Registry *instance = RegistrySingleton::instance();
    	if (!instance->mRootNode) {
    		instance->load();
    	}
    	return *instance;
    }
    
    void Registry::load()
    {
    	try {
    		// ...
    		if (!mReader) {
    			mReader = XMLReaderFactory::createXMLReader();
    		}
    		// ...
    		mReader->parse( ... );
    	} catch (...) {
    		// ...
    		throw; // удачи всем пользователям обрабатывать исключения xerces...
    	}
    }

    боян синглтонно-абстрактный для чтения xml конфигурации с помощью xerces.

    и не только ошибки не обрабатаешь (потому что getInstance() их бросает, угадай какой именно вызов из сотен загружает конфигурацию), но и в добавок народ не впечатал как многопоточность сделать правильно (RegistrySingleton это специализация шаблона который синхронизирует инициализацию mInstance переменной, и только).

    Dummy00001, 07 Октября 2013

    Комментарии (15)
  4. Си / Говнокод #13690

    +133

    1. 1
    hq->rd_period = (i = hq->rd_period+1) != 0 ? i : 1;

    что именно хотел сказать автор, неизвестно. предполагаю что `while (!++hq->rd_period);`

    Dummy00001, 28 Августа 2013

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

    +9

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    void SillyThread::run()
    {
        forever
        {
            // ... a test ...
        }
    }
    
    void CrazyThread::run()
    {
        forever
        {
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
    
            if(qrand() % 2 == 0)
            {
                // ... a test ...
            }
        }
    }

    не совсем говно, но имена и структука прикололи. из кода стресс-теста PDF библиотеки poppler.

    Dummy00001, 19 Июня 2013

    Комментарии (3)
  6. Си / Говнокод #12574

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void *threadFunc(void *)
    {
    	// ...
    	pthread_exit( (void*)lTaskId );
    	return ( (void*)lTaskId );
    	// ...
    }

    позабавило.

    для непосвященных: return в функции потока аналогичен вызову pthread_exit().

    Dummy00001, 11 Февраля 2013

    Комментарии (3)
  7. Java / Говнокод #12242

    +75

    1. 1
    Long value = Long.valueOf(String.valueOf(avpValue));

    не специалист по жабе, но пахнет: сначала по всему коду нагородить огородов с Byte/Short/Integer/Long что бы потом в самом важном месте вот так в лоб все в Long конвертить...

    Dummy00001, 03 Декабря 2012

    Комментарии (7)
  8. Java / Говнокод #12032

    +69

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("\nAVPCODE: "+code+'<'+vendorId+'>');
        return sb.toString();
    }
    
    public String getCodeAsStringWithVendorIdAlways(){
        StringBuilder sb = new  StringBuilder();
    
        sb.append(code);
        sb.append('<');
        sb.append(vendorId);
        sb.append('>');
    
        return sb.toString();
    }
    
    public String getCodeAsStringWithVendorIdOnlyForRealVendorIds(){
        StringBuilder sb = new  StringBuilder();
    
        sb.append(code);
    
        if(vendorId > 0){
            sb.append('<');
            sb.append(vendorId);
            sb.append('>');
        }
    
        return sb.toString();
    }

    конвертим Diameter's AVP код/вендор ид в строку.

    "\n" как всегда порадовал.

    и само собой разумеется что только последний метод - с именем в 47 символов - работает именно так как все и ожидают и как всем нужно (соответствует синтаксису конфигов).

    Dummy00001, 30 Октября 2012

    Комментарии (8)
  9. Си / Говнокод #11583

    +103

    1. 1
    if ( (mver!=0) != (qver!=0) )

    для головоломки слабовато, но глаза все равно напрягает.

    Dummy00001, 13 Августа 2012

    Комментарии (14)
  10. Си / Говнокод #11581

    +106

    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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    if ( ... )
      {
        if ( ... )
          {
            if ( ... )
              {
                usleep(250000);
              }
            else
              {
                sleep( 1 );
              }
          }
        else
          {
            if ( ... )
              {
                if ( ... )
                  {
                    usleep( 250000 );
                  }
                else
                  {
                    sleep( ... );
                  }
              }
            else
              {
                sleep( ... );
              }
          }
      }
    else
      {
        usleep( 250000 );
      }

    из главного цикла одного "рил-тайм" приложения. (комментарии, етц были удалены.)

    каждый раз тестеры/кастомеры жалуются что приложение работает слишком медленно или слишком быстро - появляется либо новый if со слипом, либо новый else со слипом. за два года существования, вот до этого "полного" дерева доросло. и все равно не работает как надо. :)

    Dummy00001, 13 Августа 2012

    Комментарии (6)
  11. Куча / Говнокод #10968

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    # Some old m4's don't support m4exit.  But they provide
    # equivalent functionality by core dumping because of the
    # long macros we define.
    ifdef([__gnu__], ,
    [errprint(M4sugar requires GNU M4. Install it before installing M4sugar or
    set the M4 environment variable to its path name.)
    m4exit(2)])

    из m4 скрипта, часть autoconf.

    fyi: http://en.wikipedia.org/wiki/M4_%28computer_language%29

    Dummy00001, 15 Июня 2012

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