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);