Enlightenment CVS committal Author : englebass Project : e17 Module : libs/eet
Dir : e17/libs/eet/src/lib Modified Files: Eet_private.h Makefile.am eet_data.c eet_lib.c Added Files: eet_utils.c Log Message: Move hash gen func to own file. =================================================================== RCS file: /cvs/e/e17/libs/eet/src/lib/Eet_private.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- Eet_private.h 5 Nov 2006 12:14:08 -0000 1.13 +++ Eet_private.h 28 Dec 2006 15:23:47 -0000 1.14 @@ -41,45 +41,10 @@ FILE *_eet_memfile_write_open(void **data, size_t *size); void _eet_memfile_write_close(FILE *f); void _eet_memfile_shutdown(void); +int _eet_hash_gen(const char *key, int hash_size); #ifndef PATH_MAX #define PATH_MAX 4096 #endif - -/* caluclate hash table entry valu with bitmask size of hash_size */ -static int -eet_hash_gen(const char *key, int hash_size) -{ - int hash_num = 0; - int value, i; - unsigned char *ptr; - - const int masks[9] = - { - 0x00, - 0x01, - 0x03, - 0x07, - 0x0f, - 0x1f, - 0x3f, - 0x7f, - 0xff - }; - - /* no string - index 0 */ - if (!key) return 0; - - /* calc hash num */ - for (i = 0, ptr = (unsigned char *)key, value = (int)(*ptr); - value; - ptr++, i++, value = (int)(*ptr)) - hash_num ^= (value | (value << 8)) >> (i & 0x7); - - /* mask it */ - hash_num &= masks[hash_size]; - /* return it */ - return hash_num; -} #endif =================================================================== RCS file: /cvs/e/e17/libs/eet/src/lib/Makefile.am,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- Makefile.am 15 May 2006 02:50:18 -0000 1.13 +++ Makefile.am 28 Dec 2006 15:23:47 -0000 1.14 @@ -17,6 +17,7 @@ eet_data.c \ eet_image.c \ eet_memfile.c \ +eet_utils.c \ Eet_private.h libeet_la_LIBADD = -lz -ljpeg @fnmatch_libs@ @winsock_libs@ =================================================================== RCS file: /cvs/e/e17/libs/eet/src/lib/eet_data.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -3 -r1.45 -r1.46 --- eet_data.c 17 Dec 2006 11:20:25 -0000 1.45 +++ eet_data.c 28 Dec 2006 15:23:47 -0000 1.46 @@ -610,7 +610,7 @@ int hash; ede = &(edd->elements.set[i]); - hash = eet_hash_gen((char *) ede->name, 6); + hash = _eet_hash_gen((char *) ede->name, 6); if (!edd->elements.hash.buckets[hash].element) edd->elements.hash.buckets[hash].element = ede; else @@ -651,7 +651,7 @@ int hash; Eet_Data_Descriptor_Hash *bucket; - hash = eet_hash_gen(name, 6); + hash = _eet_hash_gen(name, 6); if (!edd->elements.hash.buckets[hash].element) return NULL; if (!strcmp(edd->elements.hash.buckets[hash].element->name, name)) return edd->elements.hash.buckets[hash].element; =================================================================== RCS file: /cvs/e/e17/libs/eet/src/lib/eet_lib.c,v retrieving revision 1.72 retrieving revision 1.73 diff -u -3 -r1.72 -r1.73 --- eet_lib.c 16 Oct 2006 15:02:11 -0000 1.72 +++ eet_lib.c 28 Dec 2006 15:23:47 -0000 1.73 @@ -701,7 +701,7 @@ efn->name = (char*)((uint8_t*)(p + HEADER_SIZE)); /* get hash bucket it should go in */ - hash = eet_hash_gen(efn->name, ef->header->directory->size); + hash = _eet_hash_gen(efn->name, ef->header->directory->size); efn->next = ef->header->directory->nodes[hash]; ef->header->directory->nodes[hash] = efn; @@ -1020,7 +1020,7 @@ } /* figure hash bucket */ - hash = eet_hash_gen(name, ef->header->directory->size); + hash = _eet_hash_gen(name, ef->header->directory->size); data_size = compress ? 12 + ((size * 101) / 100) : size; @@ -1124,7 +1124,7 @@ return 0; /* figure hash bucket */ - hash = eet_hash_gen(name, ef->header->directory->size); + hash = _eet_hash_gen(name, ef->header->directory->size); /* Does this node already exist? */ for (pefn = NULL, efn = ef->header->directory->nodes[hash]; @@ -1252,7 +1252,7 @@ int hash; /* get hash bucket this should be in */ - hash = eet_hash_gen(name, ef->header->directory->size); + hash = _eet_hash_gen(name, ef->header->directory->size); for (efn = ef->header->directory->nodes[hash]; efn; efn = efn->next) { ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs