- Reading lib is 4 time faster like this :)) !
(small hash table size, and not destroyed every time) - bug fix ( sizeof(int) != sizeof(void *) in 64 bits)
This commit is contained in:
parent
7aff03606f
commit
352883a22b
|
@ -37,13 +37,7 @@
|
|||
#include "bog_lib_matching.h"
|
||||
|
||||
|
||||
/*size of memory block*/
|
||||
#define BLOCK 256
|
||||
|
||||
static authtable* HTABLE;
|
||||
|
||||
|
||||
|
||||
static authtable* HTABLE = NULL;
|
||||
|
||||
/******************************************************************************/
|
||||
/* return 0, if there is already a variable with pattern */
|
||||
|
@ -60,7 +54,7 @@ static int relation_between(chain_list* expr, char* pattern)
|
|||
else return 0;
|
||||
}
|
||||
|
||||
addauthelem(HTABLE, pattern,(int)expr);
|
||||
addauthelem(HTABLE, pattern,(long)expr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -134,13 +128,23 @@ extern int pattern_matching(chain_list* expr, chain_list* pattern)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
HTABLE=createauthtable (BLOCK);
|
||||
if ( HTABLE == (authtable *)0 )
|
||||
{
|
||||
HTABLE=createauthtable ( 13 );
|
||||
}
|
||||
else
|
||||
{
|
||||
resetauthtable( HTABLE );
|
||||
}
|
||||
|
||||
ret=loc_pattern_matching(expr,pattern);
|
||||
|
||||
/*free table*/
|
||||
destroyauthtable(HTABLE);
|
||||
HTABLE=NULL;
|
||||
|
||||
if ( HTABLE->TABLE_SIZE > 50 )
|
||||
{
|
||||
destroyauthtable( HTABLE );
|
||||
HTABLE = (authtable *)0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue