projects
/
rrq
/
rrqmisc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
efd0614
)
cleanup and commenting
author
Ralph Ronnquist
<ralph.ronnquist@gmail.com>
Tue, 21 Jun 2022 03:23:38 +0000
(13:23 +1000)
committer
Ralph Ronnquist
<ralph.ronnquist@gmail.com>
Tue, 21 Jun 2022 03:23:38 +0000
(13:23 +1000)
pvector/example-hashvector.c
patch
|
blob
|
history
diff --git
a/pvector/example-hashvector.c
b/pvector/example-hashvector.c
index 214738f30e4695a2908af1c134e57917e947d4ef..f75242655f6431b83f1f9ce46433d3042965f386 100644
(file)
--- a/
pvector/example-hashvector.c
+++ b/
pvector/example-hashvector.c
@@
-15,14
+15,8
@@
typedef struct _ipslot {
unsigned int bits;
} ipslot;
unsigned int bits;
} ipslot;
-static int voidp_hashcode(void *key) {
- unsigned char *p = (unsigned char *) key;
- int value = 5381;
- int i = 0;
- for ( ; i < sizeof( ipslot ); i++ ) {
- value += ( value << 5 ) + *(p++);
- }
- return value;
+static unsigned long voidp_hashcode(void *key) {
+ return hashvector_hashcode( key, sizeof( ipslot ) );
}
static void* voidp_itemkey(void *item) {
}
static void* voidp_itemkey(void *item) {
@@
-35,7
+29,7
@@
static int voidp_haskey(void *item,void *key) {
static struct {
hashvector hv;
static struct {
hashvector hv;
-
int
fill;
+
long
fill;
} table = {
.hv = {
.table = { 12000, 0 },
} table = {
.hv = {
.table = { 12000, 0 },
@@
-218,14
+212,16
@@
int main(int argc,char **argv) {
for ( i = 1; i < argc; i++ ) {
load_file( argv[ i ] );
}
for ( i = 1; i < argc; i++ ) {
load_file( argv[ i ] );
}
+ fprintf( stdout, "---- hashvector after filling it %ld/%ld/%ld\n",
+ table.hv.fill, table.hv.holes, table.hv.table.size );
pvector_dump( &table.hv.table, dump_ipslot );
pvector_dump( &table.hv.table, dump_ipslot );
- fprintf( stdout, "--------------\n" );
- if ( hashvector_pack( &table.hv, &test ) < 0 ) {
+ if ( hashvector_contents( &table.hv, &test ) < 0 ) {
fprintf( stdout, "test is not empty\n" );
}
fprintf( stdout, "test is not empty\n" );
}
+ fprintf( stdout, "---- hashvector contents in hash order\n" );
pvector_dump( &test, dump_ipslot );
pvector_dump( &test, dump_ipslot );
- fprintf( stdout, "--------------\n" );
pvector_qsort( &test, compare_ipslot );
pvector_qsort( &test, compare_ipslot );
+ fprintf( stdout, "---- contents after sorting\n" );
pvector_dump( &test, dump_ipslot );
return 0;
}
pvector_dump( &test, dump_ipslot );
return 0;
}