[Groonga-commit] groonga/groonga [master] Replace ARRAY_ENTRY_AT_() with grn_array_io_entry_at().

Back to archive index

null+****@clear***** null+****@clear*****
2012年 3月 29日 (木) 10:50:34 JST


Susumu Yata	2012-03-29 10:50:34 +0900 (Thu, 29 Mar 2012)

  New Revision: 25f12792d6d6efaaebd1dfb74c32072f6dee644e

  Log:
    Replace ARRAY_ENTRY_AT_() with grn_array_io_entry_at().

  Modified files:
    lib/hash.c

  Modified: lib/hash.c (+10 -10)
===================================================================
--- lib/hash.c    2012-03-29 10:47:04 +0900 (d6f3c7c)
+++ lib/hash.c    2012-03-29 10:50:34 +0900 (e1d2ef4)
@@ -197,18 +197,19 @@ enum {
 
 #define IO_ARRAYP(array) ((array)->io)
 
-#define ARRAY_ENTRY_AT_(array,id,value,addp) do {\
-  int flags = addp;\
-  GRN_IO_ARRAY_AT(array->io, array_seg_value, id, &flags, value);\
-} while (0)
+inline static void *
+grn_array_io_entry_at(grn_ctx *ctx, grn_array *array, grn_id id, int flags)
+{
+  void *value;
+  GRN_IO_ARRAY_AT(array->io, array_seg_value, id, &flags, value);
+  return value;
+}
 
 inline static void *
 grn_array_entry_at(grn_ctx *ctx, grn_array *array, grn_id id, int flags)
 {
   if (IO_ARRAYP(array)) {
-    void *value;
-    ARRAY_ENTRY_AT_(array, id, value, flags);
-    return value;
+    return grn_array_io_entry_at(ctx, array, id, flags);
   } else {
     return grn_tiny_array_at_inline(&array->a, id);
   }
@@ -500,7 +501,7 @@ grn_array_delete_by_id(grn_ctx *ctx, grn_array *array, grn_id id,
     if (array->value_size >= sizeof(grn_id)) {
       void *ee;
       struct grn_array_header *hh = array->header;
-      ARRAY_ENTRY_AT_(array, id, ee, 0);
+      ee = grn_array_io_entry_at(ctx, array, id, 0);
       if (!ee) { rc = GRN_INVALID_ARGUMENT; goto exit; }
       *((grn_id *)ee) = hh->garbages;
       hh->garbages = id;
@@ -666,8 +667,7 @@ array_entry_new(grn_ctx *ctx, grn_array *array)
   if (IO_ARRAYP(array)) {
     struct grn_array_header *hh = array->header;
     if ((e = hh->garbages)) {
-      void *ee;
-      ARRAY_ENTRY_AT_(array, e, ee, GRN_TABLE_ADD);
+      void *ee = grn_array_io_entry_at(ctx, array, e, GRN_TABLE_ADD);
       if (!ee) { return GRN_ID_NIL; }
       hh->garbages = *((grn_id *)ee);
       memset(ee, 0, hh->value_size);




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