- 1
- 2
- 3
- 4
- 5
void SomeFunction(SomeClass* cls)
{
std::auto_ptr<SomeClass> tmp(cls);
SomeObject.SomeMethod(tmp.release());
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+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) плохо пахнущие имена переменных
+129.3
// IPrincipal Implementation
public bool IsInRole(string role)
{
return Array.BinarySearch( _roles, role ) >=0 ? true : false;
}
public IIdentity Identity
{
get
{
return _identity;
}
}
Взято из Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication (http://msdn.microsoft.com/en-us/library/aa302401.aspx)
Step 4. Create a Class that Implements and Extends IPrincipal
6. Implement the IsInRole method and Identity property defined by the IPrincipal interface as shown below.
+147.7
$this->view->isAdmin = ($auth->getIdentity()->role_id == 1) ? true : false;
Называется: "заработался".
Написал и только потом дошло.
+185.3
echo "Время генерации: 0.0".rand(10,99)." сек.";
Без комментариев))) Я под столом))
+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 файла в структуру типа дерево))
+103.9
public Parameter()
{
_name = new String((char[])null);
Value = new String((char[])null);
}
Вот такой забавный метод инициализации пустой строки обнаружил в чужом коде 0_о
+112.2
procedure TForm1.Button2Click(Sender: TObject);
var
result : Tdatetime;
begin
Result := EncodeDate(1970, 1, 1) + ((strtofloat(edit26.Text)+(strtofloat(edit2.Text)*3600)) / 86400); {86400=No. of secs. per day}
edit23.Text := formatdatetime('d', Result);
edit24.Text := formatdatetime('m', Result);
edit25.Text := formatdatetime('yyyy', Result);
edit27.Text := formatdatetime('h', Result);
edit28.Text := formatdatetime('n', Result);
edit29.Text := formatdatetime('s', Result);
edit30.text := datetimetostr(result);
form1.ActiveControl := edit30;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
x,y : extended;
begin
edit12.Text := formatdatetime('d', datetimepicker2.date);
edit17.Text := formatdatetime('m', datetimepicker2.date);
edit18.Text := formatdatetime('yyyy', datetimepicker2.date);
x := (EncodeDate(strtoint(edit18.text), strtoint(edit17.text), strtoint(edit12.text)) - EncodeDate(1970, 1, 1)) * 86400 ;
y := (strtoint(edit20.text)*3600) + (strtoint(edit21.text)*60) + strtoint(edit22.text);
x := x+y-(strtofloat(edit1.Text)*3600);
edit19.Text := floattostr(x);
form1.ActiveControl := edit19;
end;
Особенно старательный ковнокодер, умудрился растянуть на 30 строк то, что реально заняло у меня 8.
ну я не говорю еще про большую описательную часть его кода.
+68.9
class imgSeq {
public:
CvSeq* faces;
IplImage* img;
IplImage* small_img;
IplImage* gray;
CvMemStorage* storage;
int id;
imgSeq() {
CvSeq* faces = 0;
IplImage* img = 0;
IplImage* small_img = 0;
IplImage* gray =0 ;
CvMemStorage* storage = 0;
id = -1; //unassigned
};
};
Хотя бы id взаправду инициализирует
+164.7
$db = new mysqli(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE);
$query = 'UPDATE registration SET choose_style="'.$_POST['style'].'" WHERE registration_id='.$profile_id;
$result = $db->query($query);
if ($result && $db->affected_rows > 0) {
echo 'Стиль успешно изменен. Закройте браузер и зайдите снова.';
} else {
echo 'Стиль не изменен';
echo $db->error;
}
"Закройте браузер и зайдите снова" )))