diff --git a/src/memory.c b/src/memory.c index 512eeb0f7ae27ae0d7cca7194e73c072063f5bf6..de776776016450b9450ddde8736508b5c8b022ab 100644 --- a/src/memory.c +++ b/src/memory.c @@ -20,251 +20,7 @@ char *xalloc(SIZE_T size) return 0; } -#if 0 -/* - * This function may NOT change 'order' - * This function is probably too slow, but it does not use - * any extra space, so it could still be used if no extra space - * could be allocated. - */ -void reorder(char *memory,INT32 nitems,INT32 size,INT32 *order) -{ - INT32 e, w; - - switch(size) - { - case 4: - for(e=0; e<nitems-1; e++) - { - INT32 tmp; - for(w = order[e]; w < e; w = order[w]); - if(w == e) continue; - tmp=((INT32 *)memory)[e]; - ((INT32 *)memory)[e]=((INT32 *)memory)[w]; - ((INT32 *)memory)[w]=tmp; - } - break; - - case 8: - for(e=0; e<nitems-1; e++) - { - typedef struct eight_bytes { char t[8]; } eight_bytes; - eight_bytes tmp; - for(w = order[e]; w < e; w = order[w]); - if(w == e) continue; - tmp=((eight_bytes *)memory)[e]; - ((eight_bytes *)memory)[e]=((eight_bytes *)memory)[w]; - ((eight_bytes *)memory)[w]=tmp; - } - break; - - default: - for(e=0; e<nitems-1; e++) - { - INT32 z; - for(w = order[e]; w < e; w = order[w]); - if(w == e) continue; - - for(z=0; z<size; z++) - { - char tmp; - tmp=memory[e*size+z]; - memory[e*size+z]=memory[w*size+z]; - memory[e*size+z]=tmp; - } - } - } -} - -#endif - -#if 0 -/* - * This function may NOT change 'order' - * This function is probably too slow, but it does not use - * any extra space, so it could still be used if no extra space - * could be allocated. - * (actually, it _does_ change 'order' but restores it afterwards) - */ -void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order) -{ - INT32 e,d,c; - -#ifdef DEBUG - for(e=0;e<nitems;e++) - { - for(d=0;d<nitems;d++) if(order[d]==e) break; - if(d==nitems) - fatal("Missing number %ld in reorder() (nitems = %ld)\n", - (long)e, - (long)nitems); - } -#endif - - - switch(size) - { -#ifdef DEBUG - case 0: - fatal("FEL FEL FEL\n"); - break; -#endif - - case 1: - { - char a,*m; - m=memory; - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - a=memory[c=e]; - do - { - c=order[d=c]; - m[d]=m[c]; - order[d]=~c; - } while(c!=e); - memory[d]=a; - } - order[e] =~ order[e]; - } - break; - } - - case 2: - { - typedef struct TMP2 { char t[2]; } tmp2; - tmp2 a,*m; - m=(tmp2 *)memory; - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - a=m[c=e]; - do - { - c=order[d=c]; - m[d]=m[c]; - order[d]=~c; - } - while(c!=e); - m[d]=a; - } - order[e] =~ order[e]; - } - break; - } - - case 4: - { - typedef struct TMP4 { char t[4]; } tmp4; - tmp4 a,*m; - m=(tmp4 *)memory; - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - a=m[c=e]; - do - { - c=order[d=c]; - m[d]=m[c]; - order[d]=~c; - } while(c!=e); - m[d]=a; - } - order[e] =~ order[e]; - } - break; - } - - case 8: - { - typedef struct TMP8 { char t[8]; } tmp8; - tmp8 a,*m; - m=(tmp8 *)memory; - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - a=m[c=e]; - do { - c=order[d=c]; - m[d]=m[c]; - order[d]= ~c; - }while(c!=e); - - m[d]=a; - } - order[e] =~ order[e]; - } - break; - } - case 16: - { - typedef struct TMP16 { char t[16]; } tmp16; - tmp16 a,*m; - m=(tmp16 *)memory; - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - a=m[c=e]; - do { - c=order[d=c]; - m[d]=m[c]; - order[d]= ~c; - }while(c!=e); - - m[d]=a; - } - order[e] =~ order[e]; - } - break; - } - - default: - { - char *a; - - a=(char *)alloca(size); - - for(e=0;e<nitems;e++) - { - if(order[e]==e) continue; - if(order[e]>=0) - { - MEMCPY(a, memory+e*size, size); - - c=e; - do { - c=order[d=c]; - MEMCPY(memory+d*size, memory+c*size, size); - order[d]= ~c; - }while(d!=e); - - MEMCPY(memory+d*size, a, size); - } - order[e] =~ order[e]; - } - } - } -} -#endif - -#if 1 /* * This function may NOT change 'order' * This function is hopefully fast enough... @@ -301,7 +57,6 @@ void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order) MEMCPY(memory, tmp, size * nitems); free(tmp); } -#endif unsigned INT32 hashmem(const unsigned char *a,INT32 len,INT32 mlen) {