- 1
- 2
- 3
- 4
- 5
- 6
- 7
for (conn_vector::iterator i = m_connections.begin(); i != m_connections.end(); ++i) {
if (*i == conn) {
toDelete = *i;
m_connections.erase(i);
break;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
for (conn_vector::iterator i = m_connections.begin(); i != m_connections.end(); ++i) {
if (*i == conn) {
toDelete = *i;
m_connections.erase(i);
break;
}
}
Да, С++98. Да, в std::find не умеем. Да, сегфолт. Да, моё.
+58
void Model::setPosition(GLfloat x, GLfloat y, GLfloat z) {
if (m_position == NULL) {
m_position = (float *) malloc(3 * sizeof(float));
}
if (m_position != NULL) {
m_position[0] = x;
m_position[1] = y;
m_position[2] = z;
}
}
void Model::setRotate(GLfloat x, GLfloat y, GLfloat z) {
if (m_rotate == NULL) {
m_rotate = (float *) malloc(3 * sizeof(float));
}
if (m_rotate != NULL) {
m_rotate[0] = x;
m_rotate[1] = y;
m_rotate[2] = z;
}
}
http://code.google.com/p/forget3d/
Во первых, умиляет умение людей взяв современный супернавороченый удобный автомат, вместо того чтоб нажать на курок и выстрелить в противника, взять этот автомат наперевес как дубинку, и идти им пиздить противника по голове. Я о сишке, слегка прикрытой крестами.
И во вторых, этот код при недостатке памяти просто нифига не делает, что чревато непонятками - вроде и повертел модель, вроде и подвинул, а оно никак не вертится и не двигается.
+53
void _debugPrintWaveHeader(const char *path, const WAVHEADER &source_header)
{
FILE *debug = fopen("path", "wt");
fprintf(debug, "chunkId = %s\n", source_header.chunkId);
fprintf(debug, "chunkSize = %u\n", source_header.chunkSize);
fprintf(debug, "format = %s\n", source_header.format);
fprintf(debug, "subCh1Id = %s\n", source_header.subchunk1Id);
fprintf(debug, "subCh1Size = %u\n", source_header.subchunk1Size);
fprintf(debug, "audioform = %u\n", source_header.audioFormat);
fprintf(debug, "numChanels = %u\n", source_header.numChannels);
fprintf(debug, "sampleRate = %u\n", source_header.sampleRate);
fprintf(debug, "byteRate = %u\n", source_header.byteRate);
fprintf(debug, "blockAlign = %u\n", source_header.blockAlign);
fprintf(debug, "bitsPerSam = %u\n", source_header.bitsPerSample);
fprintf(debug, "subCh2Id = %s\n", source_header.subchunk2Id);
fprintf(debug, "subCh2Size = %u\n", source_header.subchunk2Size);
fclose(debug);
}
Начал разгребать один говнопроект... При отладке программа всё падает и падает, падает и не может остановится. Смотрю на код - все в норме, а потом, по прошествии нескольких часов...
+58
if(ext == ".wav")
{
if(main_header.bitsPerSample == 8)
{
switch(main_header.bitsPerSample)
{
case 8:
{
open_mode = n8bit_mode;
}break;
case 16:
{
open_mode = n16bit_mode;
}break;
default: open_mode = nNULL;
}
....далее какото код
}
...
+62
wchar_t c1 =
(wchar_t)LOWORD(::CharUpperW((LPWSTR)(DWORD_PTR) MAKELONG(*i1, 0)));
Шиндовс, штроки, штрадания
http://llvm.org/bugs/show_bug.cgi?id=20712
+57
#include "TrayIcon.h"
// ----------------------------------------------------------------------------
TrayIcon::TrayIcon(QObject* parent) : QSystemTrayIcon(parent),
INTERVAL(1000),
WIDTH_ICON(30), HEIGHT_ICON(30)
{
currentDate = QDate(0, 0, 0);
defaultIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
defaultIcon.fill(Qt::black);
reminderIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
reminderIcon.fill(Qt::yellow);
thousandthDayIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
thousandthDayIcon.fill(Qt::green);
dialogBoxIsActive = false;
readSettings();
wasReminder = false;
wasCongratulation = false;
wasSetNewDate = false;
slotUpdateDate();
QMenu* contextMenu = new QMenu;
contextMenu->addAction("Set date of birth...",
this, SLOT(slotSetDateOfBirth()));
QAction* autorunAction = contextMenu->addAction("Autorun",
this, SLOT(slotSetAutorun(bool)));
autorunAction->setCheckable(true);
autorunAction->setChecked(autorun);
contextMenu->addSeparator();
contextMenu->addAction("About...", this, SLOT(slotAboutMyProgram()));
contextMenu->addSeparator();
contextMenu->addAction("Quit", qApp, SLOT(quit()));
setContextMenu(contextMenu);
QTimer* timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), SLOT(slotUpdateDate()));
timer->start(500);
}
// ----------------------------------------------------------------------------
void TrayIcon::slotUpdateDate()
{
if((currentDate != QDate::currentDate()) || wasSetNewDate)
{
currentDate = QDate::currentDate();
daysToThousandthDay
= INTERVAL - dateOfBirth.daysTo(currentDate) % INTERVAL;
wasCongratulation = false;
wasReminder = false;
wasSetNewDate = false;
if((daysToThousandthDay != INTERVAL) && (daysToThousandthDay != 1))
{
setIcon(QIcon(defaultIcon));
setToolTip("Until next thousandth day in " +
QString().number(daysToThousandthDay) + " days.");
}
else
{
if(daysToThousandthDay == 1)
{
if(!wasReminder)
reminderBeforeDay();
}
else
{
if(!wasCongratulation)
congratulation();
}
}
}
}
Описание конструктора и одного из методов класса иконки в системном трее из программы, которая должна оповещать пользователя о каждом тысячном дне его жизни. Написано на Qt.
Полная версия:
main: http://pastebin.com/DEKiMWdb
хедер класса иконки трея: http://pastebin.com/rN9NwBPB
.cpp класса иконки трея: http://pastebin.com/uuyf5uxX
хедер класса окна ввода даты рождения: http://pastebin.com/bmfAbFwg
.cpp класса окна ввода даты рождения: http://pastebin.com/3R8BaPFC
+63
renderer->SetBackground(.0, .0, .0); // Background color green
+42
int complexFunction(int flag)
{
QMutexLocker locker(&mutex);
int retVal = 0;
switch (flag) {
case 0:
case 1:
return moreComplexFunction(flag);
case 2:
{
int status = anotherFunction();
if (status < 0)
return -2;
retVal = status + flag;
}
break;
default:
if (flag > 10)
return -1;
break;
}
return retVal;
}
Пора добавлять отдельную ветку для фрейворка Qt. Это просто клад, так извратить все принципы програмирования :-). Этот код из справки к этому чуду. QMutexLocker - целый класс для того чтобы не нужно было разблокировать мьютекс при выходе из функции! Так они скоро и до сборщика мусора с неявной типизацией дойдут!
P.S. У кого есть Qq попробуйте в "коде" сборки qmake вызвать include внутри функции.
+55
//--------------------------------------------------------------------------
#define DEF_P(X, Y, N) X##N
#define DEF_D(X, Y, N) X##N Y##N
#define DP1(DT, X, Y) DT(X, Y, 0)
//--------------------------------------------------------------------------
#define DP2(DT, X, Y) DP1(DT, X, Y), DT(X, Y, 1)
#define DP3(DT, X, Y) DP2(DT, X, Y), DT(X, Y, 2)
#define DP4(DT, X, Y) DP3(DT, X, Y), DT(X, Y, 3)
#define DP5(DT, X, Y) DP4(DT, X, Y), DT(X, Y, 4)
#define DP6(DT, X, Y) DP5(DT, X, Y), DT(X, Y, 5)
#define DP7(DT, X, Y) DP6(DT, X, Y), DT(X, Y, 6)
#define DP8(DT, X, Y) DP7(DT, X, Y), DT(X, Y, 7)
#define DP9(DT, X, Y) DP8(DT, X, Y), DT(X, Y, 8)
#define DP10(DT, X, Y) DP9(DT, X, Y), DT(X, Y, 9)
#define DP11(DT, X, Y) DP10(DT, X, Y), DT(X, Y, 10)
#define DP12(DT, X, Y) DP11(DT, X, Y), DT(X, Y, 11)
#define DP13(DT, X, Y) DP12(DT, X, Y), DT(X, Y, 12)
#define DP14(DT, X, Y) DP13(DT, X, Y), DT(X, Y, 13)
#define DP15(DT, X, Y) DP14(DT, X, Y), DT(X, Y, 14)
//--------------------------------------------------------------------------
// define functor for params count 0
//--------------------------------------------------------------------------
#define TEMP_DEF_PARAM(N)
#define TEMP_SPC_PARAM(N)
#define FUNC_PTR_PARAM(N)
#define FUNC_INV_PARAM(N)
#define FUNC_DEF_PARAM(N)
DEFINE_FUNCTOR(0);
#undef TEMP_DEF_PARAM
#undef TEMP_SPC_PARAM
#undef FUNC_PTR_PARAM
#undef FUNC_INV_PARAM
#undef FUNC_DEF_PARAM
//--------------------------------------------------------------------------
// define functor for other params counts
//--------------------------------------------------------------------------
#define TEMP_DEF_PARAM(N) ,DP##N(DEF_P, typename T,)
#define TEMP_SPC_PARAM(N) ,DP##N(DEF_P, T,)
#define FUNC_PTR_PARAM(N) DP##N(DEF_P, T,)
#define FUNC_INV_PARAM(N) DP##N(DEF_P, p,)
#define FUNC_DEF_PARAM(N) DP##N(DEF_D, T, p)
DEFINE_FUNCTOR(1);
DEFINE_FUNCTOR(2);
DEFINE_FUNCTOR(3);
DEFINE_FUNCTOR(4);
DEFINE_FUNCTOR(5);
DEFINE_FUNCTOR(6);
DEFINE_FUNCTOR(7);
DEFINE_FUNCTOR(8);
DEFINE_FUNCTOR(9);
DEFINE_FUNCTOR(10);
DEFINE_FUNCTOR(11);
DEFINE_FUNCTOR(12);
DEFINE_FUNCTOR(13);
DEFINE_FUNCTOR(14);
DEFINE_FUNCTOR(15);
Весь пиздец https://github.com/Evil-Spirit/Nutmeg/blob/master/CoreSrc/Common/Functor.h
Дети, не программируйте на C++
+57
bool Processor::check_holes(int x, int y){
int scale = 1000000;
if((x > (die_size-mem_size)/2*scale && x < (die_size-mem_size)*scale) && (y > (die_size-mem_size)/2*scale && y < (die_size-mem_size)*scale)){
return false;
}
if((x > (die_size-mem_size)*scale) && (y > (die_size-mem_size)/2*scale && y < (die_size-mem_size)*scale)){
if(((int)(x - (die_size-mem_size)*scale) % 400) > 340 && ((int)(y - (die_size-mem_size)/2*scale) % 400) > 340){
if((x - (die_size-mem_size)*scale) < 2400){
return true;
}
}
}
if((x < (die_size-mem_size)/2*scale) && (y > (die_size-mem_size)/2*scale && y < (die_size-mem_size)*scale)){
if(((int)((die_size-mem_size)/2*scale - x) % 400) > 340 && ((int)(y - (die_size-mem_size)/2*scale) % 400) > 340){
if(((die_size-mem_size)/2*scale - x) < 2400){
return true;
}
}
}
if((y > (die_size-mem_size)*scale) && (x > (die_size-mem_size)/2*scale && x < (die_size-mem_size)*scale)){
if(((int)(y - (die_size-mem_size)*scale) % 400) > 340 && ((int)(x - (die_size-mem_size)/2*scale) % 400) > 340){
if((y - (die_size-mem_size)*scale) < 2400){
return true;
}
}
}
if((y < (die_size-mem_size)/2*scale) && (x > (die_size-mem_size)/2*scale && x < (die_size-mem_size)*scale)){
if(((int)((die_size-mem_size)/2*scale - y) % 400) > 340 && ((int)(x - (die_size-mem_size)/2*scale) % 400) > 340){
if(((die_size-mem_size)/2*scale - y) < 2400){
return true;
}
}
}
return false;
}
Проверяем дырки