[Groonga-commit] groonga/groonga at 5d99bb4 [master] Share common NEXT_ADDR macro

Back to archive index

Kouhei Sutou null+****@clear*****
Sat Nov 7 22:14:40 JST 2015


Kouhei Sutou	2015-11-07 22:14:40 +0900 (Sat, 07 Nov 2015)

  New Revision: 5d99bb47e15dfd23279d8b378c99ee5409203163
  https://github.com/groonga/groonga/commit/5d99bb47e15dfd23279d8b378c99ee5409203163

  Message:
    Share common NEXT_ADDR macro

  Modified files:
    lib/db.c
    lib/grn.h
    lib/ii.c

  Modified: lib/db.c (+19 -26)
===================================================================
--- lib/db.c    2015-11-07 21:11:14 +0900 (7ef15a0)
+++ lib/db.c    2015-11-07 22:14:40 +0900 (43f66c4)
@@ -42,8 +42,6 @@ typedef struct {
 
 #define IS_WEIGHT_UVECTOR(obj) ((obj)->header.flags & GRN_OBJ_WITH_WEIGHT)
 
-#define NEXT_ADDR(p) (((byte *)(p)) + sizeof(*(p)))
-
 #define GRN_TABLE_GROUPED (0x01<<0)
 #define GRN_TABLE_IS_GROUPED(table)\
   ((table)->header.impl_flags & GRN_TABLE_GROUPED)
@@ -1235,11 +1233,6 @@ grn_table_lcp_search(grn_ctx *ctx, grn_obj *table, const void *key, unsigned int
   GRN_API_RETURN(id);
 }
 
-typedef struct {
-  grn_id target;
-  unsigned int section;
-} default_set_value_hook_data;
-
 grn_obj *
 grn_obj_default_set_value_hook(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
 {
@@ -1252,7 +1245,7 @@ grn_obj_default_set_value_hook(grn_ctx *ctx, int nargs, grn_obj **args, grn_user
     grn_obj *oldvalue = grn_ctx_pop(ctx);
     grn_obj *id = grn_ctx_pop(ctx);
     grn_hook *h = pctx->currh;
-    default_set_value_hook_data *data = (void *)NEXT_ADDR(h);
+    grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(h);
     grn_obj *target = grn_ctx_at(ctx, data->target);
     int section = data->section;
     if (flags) { /* todo */ }
@@ -2010,7 +2003,7 @@ grn_column_truncate(grn_ctx *ctx, grn_obj *column)
       break;
     case GRN_COLUMN_VAR_SIZE :
       for (hooks = DB_OBJ(column)->hooks[GRN_HOOK_SET]; hooks; hooks = hooks->next) {
-        default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+        grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
         grn_obj *target = grn_ctx_at(ctx, data->target);
         if (target->header.type != GRN_COLUMN_INDEX) { continue; }
         if ((rc = grn_ii_truncate(ctx, (grn_ii *)target))) { goto exit; }
@@ -2019,7 +2012,7 @@ grn_column_truncate(grn_ctx *ctx, grn_obj *column)
       break;
     case GRN_COLUMN_FIX_SIZE :
       for (hooks = DB_OBJ(column)->hooks[GRN_HOOK_SET]; hooks; hooks = hooks->next) {
-        default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+        grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
         grn_obj *target = grn_ctx_at(ctx, data->target);
         if (target->header.type != GRN_COLUMN_INDEX) { continue; }
         if ((rc = grn_ii_truncate(ctx, (grn_ii *)target))) { goto exit; }
@@ -2065,7 +2058,7 @@ grn_table_truncate(grn_ctx *ctx, grn_obj *table)
     switch (table->header.type) {
     case GRN_TABLE_PAT_KEY :
       for (hooks = DB_OBJ(table)->hooks[GRN_HOOK_INSERT]; hooks; hooks = hooks->next) {
-        default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+        grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
         grn_obj *target = grn_ctx_at(ctx, data->target);
         if (target->header.type != GRN_COLUMN_INDEX) { continue; }
         if ((rc = grn_ii_truncate(ctx, (grn_ii *)target))) { goto exit; }
@@ -2074,7 +2067,7 @@ grn_table_truncate(grn_ctx *ctx, grn_obj *table)
       break;
     case GRN_TABLE_DAT_KEY :
       for (hooks = DB_OBJ(table)->hooks[GRN_HOOK_INSERT]; hooks; hooks = hooks->next) {
-        default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+        grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
         grn_obj *target = grn_ctx_at(ctx, data->target);
         if (target->header.type != GRN_COLUMN_INDEX) { continue; }
         if ((rc = grn_ii_truncate(ctx, (grn_ii *)target))) { goto exit; }
@@ -2083,7 +2076,7 @@ grn_table_truncate(grn_ctx *ctx, grn_obj *table)
       break;
     case GRN_TABLE_HASH_KEY :
       for (hooks = DB_OBJ(table)->hooks[GRN_HOOK_INSERT]; hooks; hooks = hooks->next) {
-        default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+        grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
         grn_obj *target = grn_ctx_at(ctx, data->target);
         if (target->header.type != GRN_COLUMN_INDEX) { continue; }
         if ((rc = grn_ii_truncate(ctx, (grn_ii *)target))) { goto exit; }
@@ -7580,7 +7573,7 @@ update_source_hook(grn_ctx *ctx, grn_obj *obj)
 {
   grn_id *s = DB_OBJ(obj)->source;
   int i, n = DB_OBJ(obj)->source_size / sizeof(grn_id);
-  default_set_value_hook_data hook_data = { DB_OBJ(obj)->id, 0 };
+  grn_obj_default_set_value_hook_data hook_data = { DB_OBJ(obj)->id, 0 };
   grn_obj *source, data;
   GRN_TEXT_INIT(&data, GRN_OBJ_DO_SHALLOW_COPY);
   GRN_TEXT_SET_REF(&data, &hook_data, sizeof(hook_data));
@@ -7619,7 +7612,7 @@ del_hook(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry, grn_obj *hld)
   hld_size = GRN_BULK_VSIZE(hld);
   if (!hld_size) { return; }
   for (i = 0, last = &DB_OBJ(obj)->hooks[entry]; *last; i++, last = &(*last)->next) {
-    if (!memcmp(NEXT_ADDR(*last), hld_value, hld_size)) {
+    if (!memcmp(GRN_NEXT_ADDR(*last), hld_value, hld_size)) {
       grn_obj_delete_hook(ctx, obj, entry, i);
       return;
     }
@@ -7631,7 +7624,7 @@ delete_source_hook(grn_ctx *ctx, grn_obj *obj)
 {
   grn_id *s = DB_OBJ(obj)->source;
   int i, n = DB_OBJ(obj)->source_size / sizeof(grn_id);
-  default_set_value_hook_data hook_data = { DB_OBJ(obj)->id, 0 };
+  grn_obj_default_set_value_hook_data hook_data = { DB_OBJ(obj)->id, 0 };
   grn_obj *source, data;
   GRN_TEXT_INIT(&data, GRN_OBJ_DO_SHALLOW_COPY);
   GRN_TEXT_SET_REF(&data, &hook_data, sizeof(hook_data));
@@ -7671,7 +7664,7 @@ grn_hook_pack(grn_ctx *ctx, grn_db_obj *obj, grn_obj *buf)
       grn_id id = hooks->proc ? hooks->proc->obj.id : 0;
       if ((rc = grn_text_benc(ctx, buf, id + 1))) { goto exit; }
       if ((rc = grn_text_benc(ctx, buf, hooks->hld_size))) { goto exit; }
-      if ((rc = grn_bulk_write(ctx, buf, (char *)NEXT_ADDR(hooks), hooks->hld_size))) { goto exit; }
+      if ((rc = grn_bulk_write(ctx, buf, (char *)GRN_NEXT_ADDR(hooks), hooks->hld_size))) { goto exit; }
     }
     if ((rc = grn_text_benc(ctx, buf, 0))) { goto exit; }
   }
@@ -7707,7 +7700,7 @@ grn_hook_unpack(grn_ctx *ctx, grn_db_obj *obj, const char *buf, uint32_t buf_siz
         new->proc = NULL;
       }
       if ((new->hld_size = hld_size)) {
-        grn_memcpy(NEXT_ADDR(new), p, hld_size);
+        grn_memcpy(GRN_NEXT_ADDR(new), p, hld_size);
         p += hld_size;
       }
       *last = new;
@@ -8166,7 +8159,7 @@ grn_obj_add_hook(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry,
     new->proc = (grn_proc *)proc;
     new->hld_size = hld_size;
     if (hld_size) {
-      grn_memcpy(NEXT_ADDR(new), hld_value, hld_size);
+      grn_memcpy(GRN_NEXT_ADDR(new), hld_value, hld_size);
     }
     for (i = 0; i != offset && *last; i++) { last = &(*last)->next; }
     new->next = *last;
@@ -8206,7 +8199,7 @@ grn_obj_get_hook(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry,
       if (!hook) { return NULL; }
     }
     res = (grn_obj *)hook->proc;
-    grn_bulk_write(ctx, hldbuf, (char *)NEXT_ADDR(hook), hook->hld_size);
+    grn_bulk_write(ctx, hldbuf, (char *)GRN_NEXT_ADDR(hook), hook->hld_size);
   }
   GRN_API_RETURN(res);
 }
@@ -8238,7 +8231,7 @@ remove_index(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry)
   DB_OBJ(obj)->hooks[entry] = NULL; /* avoid mutual recursive call */
   while (hooks) {
     grn_rc sub_rc;
-    default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+    grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
     grn_obj *target = grn_ctx_at(ctx, data->target);
     if (!target) {
       char name[GRN_TABLE_MAX_KEY_SIZE];
@@ -11285,7 +11278,7 @@ grn_column_find_index_data_column_equal(grn_ctx *ctx, grn_obj *obj,
   grn_hook *hooks;
 
   for (hooks = DB_OBJ(obj)->hooks[GRN_HOOK_SET]; hooks; hooks = hooks->next) {
-    default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+    grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
     grn_obj *target = grn_ctx_at(ctx, data->target);
     int section;
     if (target->header.type != GRN_COLUMN_INDEX) { continue; }
@@ -11349,7 +11342,7 @@ grn_column_find_index_data_column_match(grn_ctx *ctx, grn_obj *obj,
 
   if (prefer_full_text_search_index) {
     for (hooks = DB_OBJ(obj)->hooks[hook_entry]; hooks; hooks = hooks->next) {
-      default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+      grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
       grn_obj *target = grn_ctx_at(ctx, data->target);
       int section;
       if (target->header.type != GRN_COLUMN_INDEX) { continue; }
@@ -11368,7 +11361,7 @@ grn_column_find_index_data_column_match(grn_ctx *ctx, grn_obj *obj,
   }
 
   for (hooks = DB_OBJ(obj)->hooks[hook_entry]; hooks; hooks = hooks->next) {
-    default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+    grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
     grn_obj *target = grn_ctx_at(ctx, data->target);
     int section;
 
@@ -11422,7 +11415,7 @@ grn_column_find_index_data_column_range(grn_ctx *ctx, grn_obj *obj,
   }
 
   for (hooks = DB_OBJ(obj)->hooks[hook_entry]; hooks; hooks = hooks->next) {
-    default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+    grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
     grn_obj *target = grn_ctx_at(ctx, data->target);
     int section;
     if (target->header.type != GRN_COLUMN_INDEX) { continue; }
@@ -11611,7 +11604,7 @@ grn_column_find_index_data_accessor_match(grn_ctx *ctx, grn_obj *obj,
     }
 
     for (hooks = DB_OBJ(a->obj)->hooks[entry]; hooks; hooks = hooks->next) {
-      default_set_value_hook_data *data = (void *)NEXT_ADDR(hooks);
+      grn_obj_default_set_value_hook_data *data = (void *)GRN_NEXT_ADDR(hooks);
       grn_obj *target = grn_ctx_at(ctx, data->target);
 
       if (target->header.type != GRN_COLUMN_INDEX) { continue; }

  Modified: lib/grn.h (+2 -0)
===================================================================
--- lib/grn.h    2015-11-07 21:11:14 +0900 (e999831)
+++ lib/grn.h    2015-11-07 22:14:40 +0900 (2e9edf9)
@@ -759,6 +759,8 @@ grn_str_greater(const uint8_t *ap, uint32_t as, const uint8_t *bp, uint32_t bs)
 # endif /* POSIX_HOST_NAME_MAX */
 #endif /* HOST_NAME_MAX */
 
+#define GRN_NEXT_ADDR(p) (((byte *)(p)) + sizeof(*(p)))
+
 GRN_API void grn_sleep(uint32_t seconds);
 GRN_API void grn_nanosleep(uint64_t nanoseconds);
 

  Modified: lib/ii.c (+12 -14)
===================================================================
--- lib/ii.c    2015-11-07 21:11:14 +0900 (92e7891)
+++ lib/ii.c    2015-11-07 22:14:40 +0900 (46973cb)
@@ -65,8 +65,6 @@
 #define LPOS(pos) (((pos) & 0xffff) << 2)
 #define SEG2POS(seg,pos) ((((uint32_t)(seg)) << 16) + (((uint32_t)(pos)) >> 2))
 
-#define NEXT_ADDR(p) (((byte *)(p)) + sizeof(*(p)))
-
 #ifndef S_IRUSR
 # define S_IRUSR 0400
 #endif /* S_IRUSR */
@@ -1950,7 +1948,7 @@ buffer_term_dump(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_term *bt)
           "bt=(%u %u %u %u %u)", bt->tid, bt->size_in_chunk, bt->pos_in_chunk, bt->size_in_buffer, bt->pos_in_buffer);
   for (pos = bt->pos_in_buffer; pos; pos = r->step) {
     r = BUFFER_REC_AT(b, pos);
-    p = NEXT_ADDR(r);
+    p = GRN_NEXT_ADDR(r);
     GRN_B_DEC(rid, p);
     if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
       GRN_B_DEC(sid, p);
@@ -1969,7 +1967,7 @@ check_jump(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_rec *r, int j)
   buffer_rec *r2;
   docid id, id2;
   if (!j) { return GRN_SUCCESS; }
-  p = NEXT_ADDR(r);
+  p = GRN_NEXT_ADDR(r);
   GRN_B_DEC(id.rid, p);
   if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
     GRN_B_DEC(id.sid, p);
@@ -1981,7 +1979,7 @@ check_jump(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_rec *r, int j)
     return GRN_SUCCESS;
   }
   r2 = BUFFER_REC_AT(b, j);
-  p = NEXT_ADDR(r2);
+  p = GRN_NEXT_ADDR(r2);
   GRN_B_DEC(id2.rid, p);
   if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
     GRN_B_DEC(id2.sid, p);
@@ -2040,7 +2038,7 @@ buffer_put(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_term *bt,
   buffer_rec *r_curr, *r_start = NULL;
   uint16_t last = 0, *lastp = &bt->pos_in_buffer, pos = BUFFER_REC_POS(b, rnew);
   int vdelta = 0, delta, delta0 = 0, vhops = 0, nhops = 0, reset = 1;
-  grn_memcpy(NEXT_ADDR(rnew), bs, size - sizeof(buffer_rec));
+  grn_memcpy(GRN_NEXT_ADDR(rnew), bs, size - sizeof(buffer_rec));
   for (;;) {
     if (!*lastp) {
       rnew->step = 0;
@@ -2065,7 +2063,7 @@ buffer_put(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_term *bt,
       break;
     }
     r_curr = BUFFER_REC_AT(b, *lastp);
-    p = NEXT_ADDR(r_curr);
+    p = GRN_NEXT_ADDR(r_curr);
     GRN_B_DEC(id_curr.rid, p);
     if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
       GRN_B_DEC(id_curr.sid, p);
@@ -2093,7 +2091,7 @@ buffer_put(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_term *bt,
             BUFFER_REC_DEL(r_curr);
             if (!(step = r_curr->step)) { break; }
             r_curr = BUFFER_REC_AT(b, step);
-            p = NEXT_ADDR(r_curr);
+            p = GRN_NEXT_ADDR(r_curr);
             GRN_B_DEC(id_curr.rid, p);
           if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
             GRN_B_DEC(id_curr.sid, p);
@@ -2143,7 +2141,7 @@ buffer_put(grn_ctx *ctx, grn_ii *ii, buffer *b, buffer_term *bt,
         buffer_rec *rj = BUFFER_REC_AT(b, posj);
         if (!BUFFER_REC_DELETED(rj)) {
           docid idj;
-          p = NEXT_ADDR(rj);
+          p = GRN_NEXT_ADDR(rj);
           GRN_B_DEC(idj.rid, p);
           if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
             GRN_B_DEC(idj.sid, p);
@@ -2418,7 +2416,7 @@ typedef struct {
   if (nextb) {\
     uint32_t lrid = bid.rid, lsid = bid.sid;\
     buffer_rec *br = BUFFER_REC_AT(sb, nextb);\
-    sbp = NEXT_ADDR(br);\
+    sbp = GRN_NEXT_ADDR(br);\
     GRN_B_DEC(bid.rid, sbp);\
     if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {\
       GRN_B_DEC(bid.sid, sbp);\
@@ -3137,7 +3135,7 @@ grn_ii_buffer_check(grn_ctx *ctx, grn_ii *ii, uint32_t seg)
           nviolations++;
         }
         r = BUFFER_REC_AT(sb, pos);
-        p = NEXT_ADDR(r);
+        p = GRN_NEXT_ADDR(r);
         GRN_B_DEC(rid, p);
         if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
           GRN_B_DEC(sid, p);
@@ -4314,7 +4312,7 @@ grn_ii_cursor_next(grn_ctx *ctx, grn_ii_cursor *c)
               GRN_LOG(ctx, GRN_LOG_DEBUG, "buffer reused(%d,%d)", c->buffer_pseg, *c->ppseg);
               // todo : rewind;
             }
-            c->bp = NEXT_ADDR(br);
+            c->bp = GRN_NEXT_ADDR(br);
             GRN_B_DEC(c->pb.rid, c->bp);
             if ((c->ii->header->flags & GRN_OBJ_WITH_SECTION)) {
               GRN_B_DEC(c->pb.sid, c->bp);
@@ -4330,7 +4328,7 @@ grn_ii_cursor_next(grn_ctx *ctx, grn_ii_cursor *c)
                 buffer_rec *jump_br = BUFFER_REC_AT(c->buf, br->jump);
                 uint8_t *jump_bp;
                 uint32_t jump_rid;
-                jump_bp = NEXT_ADDR(jump_br);
+                jump_bp = GRN_NEXT_ADDR(jump_br);
                 GRN_B_DEC(jump_rid, jump_bp);
                 if (jump_rid < c->min) {
                   c->nextb = br->jump;
@@ -6970,7 +6968,7 @@ grn_ii_cursor_next_all(grn_ctx *ctx, grn_ii_cursor *c)
             GRN_LOG(ctx, GRN_LOG_DEBUG, "buffer reused(%d,%d)", c->buffer_pseg, *c->ppseg);
             // todo : rewind;
           }
-          c->bp = NEXT_ADDR(br);
+          c->bp = GRN_NEXT_ADDR(br);
           GRN_B_DEC(c->pb.rid, c->bp);
           if ((c->ii->header->flags & GRN_OBJ_WITH_SECTION)) {
             GRN_B_DEC(c->pb.sid, c->bp);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index