[Groonga-commit] groonga/groonga [master] Use grn_hash_entry in grn_hash_get_key2().

Back to archive index

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;




Groonga-commit メーリングリストの案内
Back to archive index