- 1
- 2
- 3
- 4
- 5
void AcquireSomething(..., boost::shared_ptr<Something> out)
{
...
out.reset(new Something());
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+60.3
void AcquireSomething(..., boost::shared_ptr<Something> out)
{
...
out.reset(new Something());
}
жесть
+55.9
while (true)
{
m_CurrentDevice += delta;
if (m_CurrentDevice < 0)
m_CurrentDevice = devices[DEV_PLATE]-1;
if (m_CurrentDevice > devices[DEV_PLATE]-1)
m_CurrentDevice = 0;
break;
}
Это конечно написано не специально - в результат целой кучи итераций и переделок. но результата это не отменяет
+60.6
static char *szClassName = new char[14];
static char *szCurrentDirectory = new char[MAX_BUFFER];
static char *szNewFolder = new char[MAX_BUFFER];
глобальные указатели рулят, delete нигде не вызывается
+64.2
ReturnType SomeFunction(...)
{
...
{
Mutex mutex;
Mutex::ScopedLock lock(mutex);
...
}
...
}
убер синхронизация
+51.6
private: System::Void button2_MouseHover(System::Object^ sender, System::EventArgs^ e) {
int x = rand() % 428-75; //минусуем ширину кнопки, посчитать впадлу
int y = rand() % 301-23; // - высоту
this->button2->Location::set(System::Drawing::Point(x,y));
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show("Мы так и считали", "=)", MessageBoxButtons::OK, MessageBoxIcon::Asterisk);
}
лень
+59.9
void someMethod(const std::string& name, std::autp_ptr<SomeClass> p);
{
...
std::auto_ptr<SomeClass> p(new SomeClass());
someMethod(p->GetName(), p);
...
}
Самое забавное, что при определенных условиях оно может работать.
+55.5
class cCar: public GAMEPLAYER::cPlayerRef, public cScrObject,
public IspSetOnParkingPlace<GAMEPLAYER::cCar>,
public IspCheckLoadedState<GAMEPLAYER::cCar>,
// public IspUseInitialPositioning<GAMEPLAYER::cCar>,
public IspSetVelocity<GAMEPLAYER::cCar>,
public IspTracetoPosition<GAMEPLAYER::cCar>,
public IspChangeVehicle<GAMEPLAYER::cCar>,
public IspChasePlayer<GAMEPLAYER::cCar>,
public IspRaceParamsPlayer<GAMEPLAYER::cCar>,
public IcallbackParked<GAMEPLAYER::cCar>,
public ALTERNATIVEK::cstore_this<GAMEPLAYER::cCar>
{ //... дальше не интересно
Вот такой суровый cCar :)
+52.9
void SomeFunction(SomeClass* cls)
{
std::auto_ptr<SomeClass> tmp(cls);
SomeObject.SomeMethod(tmp.release());
}
несколько раз видел такое в разных вариациях (поэтому вместо копи-пасты - абстракция).
смысл сей конструкции упорно ускользает от меня :)
+52.3
void GAMEPLAYER::cCar::abandonCar(GAMEPLAYER::cPlayer* player){
for(unsigned int i=0;i<size();++i){
cBaseAnimManager * bam = get(i);
if(!bam->isCarRider())
continue;
cCarRider* rdr = (cCarRider*)bam;
if(rdr->gScript()==player->gScript()){
delete rdr;
storage.erase(i);
--i;
}
}
}
НЕ time-critical код из некоторой игры
Наблюдаем:
1) непониманием того, зачем нужно наследование
2) плохо пахнущие имена переменных
+60.3
void CExeTuner::ResFill2Tree(uchar *baddr, uchar *addr, TRes *now, int level)
{
int len;
now->size1=*(uword *)(addr+0x0C); now->size2=*(uword *)(addr+0x0E);
if (now->size1+now->size2) now->mas=new TRes * [(now->size1+now->size2)];
ulong long1,long2;
for (int i=0; i<(now->size1+now->size2); i++)
{
now->mas[i]=new TRes;
now->mas[i]->back=now;
now->mas[i]->name=new char [32];
now->mas[i]->mas=NULL; now->mas[i]->data=NULL;
long1=*(ulong *)(addr+0x10+(i<<3));
long2=*(ulong *)(addr+0x14+(i<<3));
if (long1&0x80000000) {
long1&=0x7FFFFFFF;
now->mas[i]->isname=true;
len=*(uword *)(baddr+long1);
now->mas[i]->rname1=new uchar [len*2+2+1];
now->mas[i]->rname1[len*2+2]=0;
memcpy(now->mas[i]->rname1,baddr+long1,len*2+2);
now->mas[i]->name=new char [len+1];
now->mas[i]->name[len]=0;
for (int j=0; j<=len; j++)
now->mas[i]->name[j]=now->mas[i]->rname1[(j+1)*2];
} else {
now->mas[i]->isname=false;
now->mas[i]->rname2=long1;
if (!ResNumToStr(long1,now->mas[i]->name,level)) _itoa(long1,now->mas[i]->name,10);
}
if (long2&0x80000000) {
long2&=0x7FFFFFFF;
now->mas[i]->isdir=true;
ResFill2Tree(baddr, baddr+long2, now->mas[i], level+1);
} else {
now->mas[i]->isdir=false;
now->mas[i]->size1=*(ulong *)(baddr+long2+4);
now->mas[i]->data=new uchar [now->mas[i]->size1];
if ((*(ulong *)(baddr+long2)+now->mas[i]->size1)>(*ExeMain.ResDirAddrOBJ+*ObjMas[ExeMain.ResPosInObj].size))
{ now->mas[i]->data=NULL; now->mas[i]->size1=0;
} else memcpy(now->mas[i]->data,baddr-*ExeMain.ResDirAddrOBJ+*(ulong *)(baddr+long2),now->mas[i]->size1);
}
}
}
Древнющий проект откопал))
Метод извлекает все ресурсы из PE файла в структуру типа дерево))