null+****@clear*****
null+****@clear*****
2012年 4月 4日 (水) 15:27:03 JST
Susumu Yata 2012-04-04 15:27:03 +0900 (Wed, 04 Apr 2012) New Revision: 30472b6fae302349f0bf50eda4f12d7c130d14ff Log: Use grn_hash_entry in grn_hash_get_key2(). Modified files: lib/hash.c Modified: lib/hash.c (+14 -6) =================================================================== --- lib/hash.c 2012-04-04 15:19:12 +0900 (5ff19e9) +++ lib/hash.c 2012-04-04 15:27:03 +0900 (46c5f85) @@ -1907,12 +1907,20 @@ grn_hash_get_key2(grn_ctx *ctx, grn_hash *hash, grn_id id, grn_obj *bulk) { int key_size; char *key; - entry_str *ee; - if (!grn_hash_bitmap_at(ctx, hash, id)) { return 0; } - ee = grn_hash_entry_at(ctx, hash, id, 0); - if (!ee) { return 0; } - key_size = (hash->obj.header.flags & GRN_OBJ_KEY_VAR_SIZE) ? ee->size : hash->key_size; - key = get_key(ctx, hash, ee); + grn_hash_entry *entry; + if (!grn_hash_bitmap_at(ctx, hash, id)) { + return 0; + } + entry = grn_hash_entry_at(ctx, hash, id, 0); + if (!entry) { + return 0; + } + if (hash->obj.header.flags & GRN_OBJ_KEY_VAR_SIZE) { + key_size = entry->header.key_size; + } else { + key_size = hash->key_size; + } + key = grn_hash_entry_get_key(ctx, hash, entry); if (bulk->header.impl_flags & GRN_OBJ_REFER) { bulk->u.b.head = key; bulk->u.b.curr = key + key_size;