- 1
- 2
- 3
- 4
n = strlen(pName);
name = new char[n + 1];
memset(name, 0, n + 1);
memcpy(name, pName, n);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 94
+8
n = strlen(pName);
name = new char[n + 1];
memset(name, 0, n + 1);
memcpy(name, pName, n);
боянчик. std::string наверное религия не позволяет. а strdup() слишком С. oh wait...
+8
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 переменной, и только).
+133
hq->rd_period = (i = hq->rd_period+1) != 0 ? i : 1;
что именно хотел сказать автор, неизвестно. предполагаю что `while (!++hq->rd_period);`
+9
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.
+131
void *threadFunc(void *)
{
// ...
pthread_exit( (void*)lTaskId );
return ( (void*)lTaskId );
// ...
}
позабавило.
для непосвященных: return в функции потока аналогичен вызову pthread_exit().
+75
Long value = Long.valueOf(String.valueOf(avpValue));
не специалист по жабе, но пахнет: сначала по всему коду нагородить огородов с Byte/Short/Integer/Long что бы потом в самом важном месте вот так в лоб все в Long конвертить...
+69
@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 символов - работает именно так как все и ожидают и как всем нужно (соответствует синтаксису конфигов).
+103
if ( (mver!=0) != (qver!=0) )
для головоломки слабовато, но глаза все равно напрягает.
+106
if ( ... )
{
if ( ... )
{
if ( ... )
{
usleep(250000);
}
else
{
sleep( 1 );
}
}
else
{
if ( ... )
{
if ( ... )
{
usleep( 250000 );
}
else
{
sleep( ... );
}
}
else
{
sleep( ... );
}
}
}
else
{
usleep( 250000 );
}
из главного цикла одного "рил-тайм" приложения. (комментарии, етц были удалены.)
каждый раз тестеры/кастомеры жалуются что приложение работает слишком медленно или слишком быстро - появляется либо новый if со слипом, либо новый else со слипом. за два года существования, вот до этого "полного" дерева доросло. и все равно не работает как надо. :)
+124
# 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