ITS#4223 don't store negative results in IDL cache

This commit is contained in:
Howard Chu 2005-11-28 22:53:03 +00:00
parent 22f05c6785
commit a0d9bd7890
2 changed files with 7 additions and 7 deletions

View file

@ -1006,7 +1006,7 @@ synced:
if ( !BDB_IDL_IS_RANGE( cx->tmp ) && cx->tmp[0] > 3 )
bdb_idl_sort( cx->tmp, cx->buf );
if ( cx->bdb->bi_idl_cache_max_size ) {
if ( cx->bdb->bi_idl_cache_max_size && !BDB_IDL_IS_ZERO( cx->tmp )) {
char *ptr = ((char *)&cx->id)-1;
cx->key.data = ptr;
cx->key.size = sizeof(ID)+1;

View file

@ -325,17 +325,17 @@ bdb_idl_cache_put(
bdb_idl_cache_entry_t idl_tmp;
bdb_idl_cache_entry_t *ee;
if ( rc == DB_NOTFOUND || BDB_IDL_IS_ZERO( ids ))
return;
DBT2bv( key, &idl_tmp.kstr );
ee = (bdb_idl_cache_entry_t *) ch_malloc(
sizeof( bdb_idl_cache_entry_t ) );
ee->db = db;
if ( rc == DB_NOTFOUND || BDB_IDL_IS_ZERO( ids )) {
ee->idl = NULL;
} else {
ee->idl = (ID*) ch_malloc( BDB_IDL_SIZEOF ( ids ) );
BDB_IDL_CPY( ee->idl, ids );
}
ee->idl = (ID*) ch_malloc( BDB_IDL_SIZEOF ( ids ) );
BDB_IDL_CPY( ee->idl, ids );
ee->idl_lru_prev = NULL;
ee->idl_lru_next = NULL;
ber_dupbv( &ee->kstr, &idl_tmp.kstr );