- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
transaction::~transaction()
{
if (db_) {
int rc = db_->execute(fcommit_ ? "COMMIT" : "ROLLBACK");
if (rc != SQLITE_OK)
throw database_error(*db_);
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+170
transaction::~transaction()
{
if (db_) {
int rc = db_->execute(fcommit_ ? "COMMIT" : "ROLLBACK");
if (rc != SQLITE_OK)
throw database_error(*db_);
}
}
(c) http://code.google.com/p/sqlite3pp/source/browse/trunk/sqlite3pp.cpp#486
пожалуй, здесь нехватает картинки в стиле Nichtlustig с подписью "лемминг делает throw в деструкторе"
+152
BOOL NAKED CompareCurrentProcess(PCHAR pszName)
{
/*
1. Found PEB
2. Found _RTL_USER_PROCESS_PARAMETERS
3. Found _RTL_USER_PROCESS_PARAMETERS->ImagePathName
4. Convert UNICODE to ANSI
5. compare strings
*/
__asm {
MOV ESI,ESP // SAVE STACK PTR
MOV EAX,DWORD PTR FS:[0x30] // eax == PEB
MOV EAX,DWORD PTR DS:[EAX+0x10] // eax == _RTL_USER_PROCESS_PARAMETERS
ADD EAX,0x38 // eax == _RTL_USER_PROCESS_PARAMETERS->ImagePathName
XOR EDX,EDX //
XOR ECX,ECX //
XOR EDI,EDI //
MOV CL, BYTE PTR [EAX] // CL = UNICODE_STRING.Length in bytes
SUB ESP,ECX // reserve in stack CL bytes
ADD EAX,4 // EAX ptr to WCHAR ImagePathName
MOV EAX,DWORD PTR [EAX] // EAX = PWCHAR
next_char:
CMP CL,0 // WCHAR end
JZ end;
MOV DL,BYTE PTR [EAX] // DL == *(PCHAR)WCHAR
ADD EAX,2 // GOTO next WIDEchar
MOV BYTE PTR [ESP],DL // SAVE char in memory reserved in stack
INC ESP // pStr++
INC EDI // pStrLen++
SUB CL,2 // Length--;
jmp next_char // goto_next;
end:
MOV BYTE PTR [ESP],0 // *pStr = 0; null terminated
SUB ESP,EDI // pStr = (PCHAR)(pStr - pStrLen)
XOR EDX,EDX
XOR ECX,ECX
mov ecx,esp // ecx = pStr
mov edx,esp // edx = pStr
//
// HERE FOUND image file name
m_loop:
cmp edi,0
jz file_founded
cmp byte ptr [edx],0x5C // '\'
JZ founded;
inc edx
dec edi
jmp m_loop
founded:
dec edi
mov ecx,edx
inc edx
jmp m_loop
file_founded:
push esi
inc ecx
push ecx
push dword ptr [esi+4]
call my_strcmp
pop esi
mov esp,esi
ret
}
}
Источник: http://www.wasm.ru/forum/viewtopic.php?id=40652
Что может быть плохого в функции кроме того, что эту задачу можно было бы решить тонной адекватных вариантов?
+168
bool SomeFuncrion ()
{
...................................
if (dbAttrList.size())
return true;
else
return false;
scroll( 0 , 0 );
}
А вдруг?
+166
void СSomeClass::InternalRemovePath( QString qsPath, int pUIModule )
{
QProgressDialog * pDlg = (QProgressDialog *)pUIModule;
...................
}
.......................
void someFunction ()
{
..................
QProgressDialog * pProgress = NULL;
pProgress = new QProgressDialog( QObject::tr( "Deleting...") , QObject::tr( "Abort" ), 0, nTotal, NULL );
InternalRemovePath( qsPath , (int) pProgress );
..................
}
И по коду таких вещей (приведение указателей к int при передаче в функции) очень много. Пока собрал проект, задолбался.
Интересно, что автор курил? Хотя, нет - тут уже что-то потяжелее.
+165
#define DEFAULT_TIMEOUT 30000
................................................
class CSettings //: public QSettings
{
................................................
static QVariant svalue( QString qs, QVariant defValue );
................................................
};
................................................
QString qs = QString("%1").arg( DEFAULT_TIMEOUT );
m_nTimeout = CSettings::svalue("connection/Timeout", qs.toAscii().data()).toString().toInt();
+160
#include <iostream>
#include <string>
using namespace std;
int main()
{
const int hz_limit = 20000;
string str;
string str_mass[] = {"a", "b", "ais", "h", "ces", "c", "his", "cis", "des",
"d", "dis", "es", "e", "fes", "f", "eis", "fis", "ges", "g", "gis", "as"};
begin:
while (cin>>str)
{
for (size_t ix = 0; ix != str.size(); ++ix)
{
str[ix] = tolower(str[ix]);
}
size_t f = 0;
for (size_t ix = 0; ix != 21; ++ix)
{
if(str == str_mass[ix])
{
f = ix;
}
}
if (str != str_mass[f])
{
goto begin;
}
double mass[] = {27.500, 29.135, 29.135, 30.868, 30.868, 32.703, 32.703, 34.648, 34.648,
36.708, 38.891, 38.891, 41.203, 41.203, 43.654, 43.654, 46.249, 46.249, 48.999, 51.913, 51.913};
for (; mass[f] < hz_limit; mass[f] *= 2)
{
cout<<mass[f]<<" Hz"<<endl;
}
}
return 0;
}
Моя первая прога. Выводит частоты на которых находится введенная нота...
+159
bool DoYouWannaRealyDoThisFunctionYesNo(T*(f)(T...), bool answer)
{
return answer;
}
Microsoft style
+159
bool Document::_Parse_Auto (char sym)
{
bool error = 0;
switch (mInfo.AutoState)
{
case 0:
{
if (is_stag (sym))
mInfo.AutoState = 1;
else
mInfo.AutoState = 14;
break;
}
case 1:
{
if (is_name (sym))
mInfo.AutoState = 24;
else if (is_delim (sym))
mInfo.AutoState = 2;
else if (is_prcom (sym))
mInfo.AutoState = 11;
else if (is_info (sym))
mInfo.AutoState = 25;
else if (is_ekey (sym))
mInfo.AutoState = 21;
else
error = true;
break;
}
<100500 строк case'ов>
case 26:
{
if (is_etag (sym))
mInfo.AutoState = 0;
else
error = true;
break;
}
}
return error;
}
void Document::_Parse_React (char sym)
{
switch (mInfo.AutoState)
{
case 0:
{
switch (mInfo.NodeType)
{
case ParseInfo::preproc:
{
delete mInfo.CurrentNode;
mInfo.CurrentNode = mInfo.LastTextNode;
break;
}
case ParseInfo::info:
{
delete mInfo.CurrentNode;
mInfo.CurrentNode = mInfo.LastTextNode;
break;
}
case ParseInfo::close:
{
if (mInfo.name == mInfo.CurrentNode->name)
mInfo.CurrentNode = mInfo.CurrentNode->parent;
else
{ mInfo.Error = 51; return; }
mInfo.name.clear ();
break;
}
}
break;
}
<ещё 100500 строк case'ов>
case 25:
{
mInfo.NodeType = ParseInfo::info;
mInfo.LastTextNode = mInfo.CurrentNode;
mInfo.CurrentNode = new Node;
break;
}
}
switch (mInfo.LastAutoState)
{
<и ещё 100500 строк case'ов>
Это я в 10 классе писал XML парсер, работающий на конечном автомате, в котором было 27 состояний.
+163
const QColor * c = & QColor.red;
const QColor * c = & QColor.rgb(12,12,12);
const QColor * c = & int QColor::red () const;
const int * c = & int QColor::red () const;
Взято отсюда: http://www.prog.org.ru/topic_16855_0.html
Особенно радует фраза: "Пробовал так <....> И другими способами, на которые вылетало множество ошибок".
+170
void Draw_Pixel_Memset(UINT color, //color = _RGB32BIT(a,r,g,b) ((b) + ((g) << 8) + ((r) << 16) + ((a) << 24))
UINT *buffer){ //buffer = (UINT*) ddsd.lpSurface
memset(buffer, color,8);
}
Рисование пикселя с помощью meset()
Подскажите, пожалуйста, почему при использование этой функции в 32 битном режиме точка получается какового то серого цвета.
С другой стороны если использовать 8 битный режим то пиксель будет нужного цвета.
Источник: http://www.gamedev.ru/code/forum/?id=145274