- 1
- 2
- 3
- 4
- 5
if (nidx == -1) {
networkIdx = -1;
} else {
networkIdx = nidx;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
if (nidx == -1) {
networkIdx = -1;
} else {
networkIdx = nidx;
}
+138
-(void)terminateSearchThreadInBackground:(NSNumber*)threadPtr
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
SearchThread* thread = (SearchThread*)[threadPtr unsignedLongValue];
delete thread;
[pool release];
}
И вновь я в шоке от нашего проекта. По какой-то неведомой причине передать в качестве параметра указатель на поток - это очень не трушно. Зато значительно более трушно - создать из него NSNumber, предварительно преобразовав к unsigned long...
+143
switch(pin){
case 0:
break;
case 1:
ADMUX = 1;
case 2:
ADMUX = 1 << 1;
case 3:
ADMUX = 1 | 1 << 1;
case 4:
ADMUX = 1 << 2;
case 5:
ADMUX = 1 | 1 << 2;
case 6:
ADMUX = 1 << 1 | 1 << 2;
}
Микроконтроллерный говнокод. Этот кусочек указывает, с какого вывода считывать показания АЦП. Эквивалент:
ADMUX |= pin;
+141
/* Putarc1 печатает точки, определяющие дугу от 0 до 45.*/
void Putarc1(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int starty, endy, y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,y_center-x,color);
}
/* Putarc2 печатает точки, определяющие дугу от 45 до 90.*/
void Putarc2(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx, endx, x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y_center-y,color);
}
/* Putarc3 печатает точки, определяющие дугу от 90 до 135.*/
void Putarc3(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx,endx,x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y_center-y,color);
}
/* Putarc4 печатает точки, определяющие дугу от 135 до 180.*/
void Putarc4(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,y_center-x,color);
}
/* Putarc5 печатает точки, определяющие дугу от 180 до 225.*/
void Putarc5(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,x_center-y1,x+y_center,color);
}
/* Putarc6 печатает точки, определяющие дугу от 225 до 270.*/
void Putarc6(HIMAGE *Im,short x, short y, short x_center, short y_center,unsigned char color){
int startx,endx,x1;
startx=x*1.0; endx=(x+1)*1.0;
for (x1=startx;x1<endx;++x1) PutPoint(Im,x_center-x1,y+y_center,color);
}
/* Putarc7 печатает точки, определяющие дугу от 270 до 315.*/
void Putarc7(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color){
int startx, endx, x1;
startx=x; endx=(x+1);
for (x1=startx;x1<endx;++x1) PutPoint(Im,x1+x_center,y+y_center, color);
}
/* Putarc8 печатает точки, определяющие дугу от 315 до 360.*/
void Putarc8(HIMAGE *Im,short x, short y, short x_center, short y_center, unsigned char color) {
int starty,endy,y1;
starty=y; endy=(y+1);
for (y1=starty;y1<endy;++y1) PutPoint(Im,y1+x_center,x+y_center,color);
}
Рисуем дуги кусками по 45 градусов
+135
int param_check(char *func, ...) {
int fail;
va_list al;
if (!func) {
return(1);
}
va_start(al, func);
fail=0;
if (!strcmp(func, "vnetGenerateDHCP") || !strcmp(func, "vnetKickDHCP")) {
vnetConfig *a = va_arg(al, vnetConfig *);
if (!a) {
fail=1;
}
} else if (!strcmp(func, "vnetAddPublicIP") || !strcmp(func, "vnetAddDev")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
if (!a || !b) {
fail=1;
}
} else if (!strcmp(func, "vnetAddHost")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
int d = va_arg(al, int);
if (!a || !b || (d < 0) || (d > NUMBER_OF_VLANS-1)) {
fail=1;
}
} else if (!strcmp(func, "vnetGetNextHost")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
int d = va_arg(al, int);
if (!a || !b || !c || d < 0 || d > NUMBER_OF_VLANS-1) {
fail=1;
}
} else if (!strcmp(func, "vnetDelHost") || !strcmp(func, "vnetEnableHost") || !strcmp(func, "vnetDisableHost")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
int d = va_arg(al, int);
if (!a || (!b && !c) || d < 0 || d > NUMBER_OF_VLANS-1) {
fail=1;
}
} else if (!strcmp(func, "vnetDeleteChain") || !strcmp(func, "vnetCreateChain")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
if (!a || !b || !c) {
fail=1;
}
} else if (!strcmp(func, "vnetTableRule")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
char *d = va_arg(al, char *);
char *e = va_arg(al, char *);
char *f = va_arg(al, char *);
char *g = va_arg(al, char *);
if (!a || !b || !c || !d || (!e && !f && !g)) {
fail=1;
}
} else if (!strcmp(func, "vnetSetVlan")) {
vnetConfig *a = va_arg(al, vnetConfig *);
int b = va_arg(al, int);
char *c = va_arg(al, char *);
char *d = va_arg(al, char *);
if (!a || b < 0 || b >= NUMBER_OF_VLANS || !c || !d) {
fail=1;
}
} else if (!strcmp(func, "vnetDelVlan")) {
vnetConfig *a = va_arg(al, vnetConfig *);
int b = va_arg(al, int);
if (!a || b < 0 || b >= NUMBER_OF_VLANS) {
fail=1;
}
} else if (!strcmp(func, "vnetInit")) {
vnetConfig *a = va_arg(al, vnetConfig *);
char *b = va_arg(al, char *);
char *c = va_arg(al, char *);
char *d = va_arg(al, char *);
int e = va_arg(al, int);
if (!a || !b || !c || d<0) {
fail=1;
}
}
va_end(al);
if (fail) {
logprintfl (EUCAERROR, "INTERNAL ERROR: incorrect input parameters to function %s\n", func);
return(1);
}
return(0);
}
+143
bool flag = getFlag();
switch (flag)
{
case true:
// do something
break;
case false:
// do something else
break;
default:
// do something more (??!)
}
бывает же...
+132
DWORD WINAPI readPort( LPVOID lpParam )
{
while (1)
{
if (brkListen)
break;
if (((Param*)(void*)lpParam)->port)
if (fgetc(((Param*)(void*)lpParam)->port)!=EOF);
((Param*)(void*)lpParam)->count++;
}
return 0;
}
Кусок программы подсчёта импульсов с оптопорта. Мало того что так делать плохо, так ещё один косяк есть. RS232 ниже 64 бод в винде не держит. так и не выяснил в физике это дело или в оси. Под RTEMS 6.04 64 бод на ура считалось.
+135
/* TODO: make this into something smarter than a linked list */
typedef struct bunchOfInstances_t {
ncInstance * instance;
int count; /* only valid on first node */
struct bunchOfInstances_t * next;
} bunchOfInstances;
ncInstance * get_instance (bunchOfInstances **headp)
{
static bunchOfInstances * current = NULL;
/* advance static variable, wrapping to head if at the end */
if ( current == NULL ) current = * headp;
else current = current->next;
/* return the new value, if any */
if ( current == NULL ) return NULL;
else return current->instance;
}
+105
int ccInstance_to_ncInstance(ccInstance *dst, ncInstance *src);
+114
#define boool long bool