[Groonga-commit] groonga/groonga at 5a52886 [master] ii: use meaningful name for destination variables

Back to archive index
Kouhei Sutou null+****@clear*****
Thu Feb 14 17:53:20 JST 2019


Kouhei Sutou	2019-02-14 17:53:20 +0900 (Thu, 14 Feb 2019)

  Revision: 5a5288604f59b65ac7a78c1b8bc2623d270cfedb
  https://github.com/groonga/groonga/commit/5a5288604f59b65ac7a78c1b8bc2623d270cfedb

  Message:
    ii: use meaningful name for destination variables

  Modified files:
    lib/ii.c

  Modified: lib/ii.c (+68 -55)
===================================================================
--- lib/ii.c    2019-02-14 17:26:46 +0900 (184f15558)
+++ lib/ii.c    2019-02-14 17:53:20 +0900 (5f1167226)
@@ -2783,7 +2783,7 @@ merge_dump_source_add_entry(grn_ctx *ctx,
                             merge_dump_source_data *data,
                             merge_dump_source_entry_type type,
                             docinfo *info,
-                            uint8_t *position_diffs)
+                            uint8_t *position_gaps)
 {
   if (GRN_TEXT_LEN(&(data->inspected_entries)) > 0) {
     GRN_TEXT_PUTC(ctx, &(data->inspected_entries), ' ');
@@ -2801,17 +2801,17 @@ merge_dump_source_add_entry(grn_ctx *ctx,
 
     GRN_TEXT_PUTC(ctx, &(data->inspected_entries), '[');
     for (i = 0; i < info->tf; i++) {
-      uint32_t position_diff;
+      uint32_t position_gap;
 
       if (i > 0) {
         GRN_TEXT_PUTC(ctx, &(data->inspected_entries), ',');
       }
       if (type == MERGE_DUMP_SOURCE_ENTRY_BUFFER) {
-        GRN_B_DEC(position_diff, position_diffs);
+        GRN_B_DEC(position_gap, position_gaps);
       } else {
-        position_diff = ((uint32_t *)position_diffs)[i];
+        position_gap = ((uint32_t *)position_gaps)[i];
       }
-      position += position_diff;
+      position += position_gap;
       grn_text_printf(ctx,
                       &(data->inspected_entries),
                       "%u",
@@ -2869,25 +2869,25 @@ merge_dump_source_chunk_raw(grn_ctx *ctx,
 
   {
     uint32_t n_documents;
-    uint32_t *record_id_diffs;
-    uint32_t *section_id_diffs = NULL;
+    uint32_t *record_id_gaps;
+    uint32_t *section_id_gaps = NULL;
     uint32_t *n_terms_list;
     uint32_t *weights;
-    uint32_t *position_diffs = NULL;
+    uint32_t *position_gaps = NULL;
 
     {
       int i = 0;
       n_documents = data->data_vector[i].data_size;
-      record_id_diffs = data->data_vector[i++].data;
+      record_id_gaps = data->data_vector[i++].data;
       if (data->ii->header->flags & GRN_OBJ_WITH_SECTION) {
-        section_id_diffs = data->data_vector[i++].data;
+        section_id_gaps = data->data_vector[i++].data;
       }
       n_terms_list = data->data_vector[i++].data;
       if (data->ii->header->flags & GRN_OBJ_WITH_WEIGHT) {
         weights = data->data_vector[i++].data;
       }
       if (data->ii->header->flags & GRN_OBJ_WITH_POSITION) {
-        position_diffs = data->data_vector[i++].data;
+        position_gaps = data->data_vector[i++].data;
       }
     }
 
@@ -2897,16 +2897,16 @@ merge_dump_source_chunk_raw(grn_ctx *ctx,
       uint32_t section_id = 0;
 
       for (i = 0; i < n_documents; i++) {
-        uint32_t record_id_diff = record_id_diffs[i];
+        uint32_t record_id_gap = record_id_gaps[i];
         docinfo info;
 
-        record_id += record_id_diff;
+        record_id += record_id_gap;
         info.rid = record_id;
         if (data->ii->header->flags & GRN_OBJ_WITH_SECTION) {
-          if (record_id_diff > 0) {
+          if (record_id_gap > 0) {
             section_id = 0;
           }
-          section_id += 1 + section_id_diffs[i];
+          section_id += 1 + section_id_gaps[i];
         } else {
           section_id = 1;
         }
@@ -2922,7 +2922,7 @@ merge_dump_source_chunk_raw(grn_ctx *ctx,
                                     data,
                                     MERGE_DUMP_SOURCE_ENTRY_CHUNK,
                                     &info,
-                                    (uint8_t *)position_diffs);
+                                    (uint8_t *)position_gaps);
       }
       merge_dump_source_flush_entries(ctx, data);
     }
@@ -3187,14 +3187,21 @@ typedef struct {
 
 typedef struct {
   grn_ii *ii;
+  docinfo last_id;
   struct {
     merge_buffer_data buffer;
   } source;
+  struct {
+    uint32_t *record_id_gaps;
+    uint32_t *section_id_gaps;
+    uint32_t *tfs;
+    uint32_t *weights;
+    uint32_t *position_gaps;
+  } dest;
   uint8_t *sc;
   uint8_t *scp;
   uint8_t *sce;
   docinfo cid;
-  docinfo last_id;
   grn_id sid;
   uint32_t *snp;
   uint32_t snn;
@@ -3203,11 +3210,6 @@ typedef struct {
   uint32_t *sop;
   uint32_t *ssp;
   uint32_t sdf;
-  uint32_t *ridp;
-  uint32_t *sidp;
-  uint32_t *tfp;
-  uint32_t *weightp;
-  uint32_t *posp;
   uint64_t spos;
 } merger_data;
 
@@ -3275,19 +3277,24 @@ merger_get_next_chunk(grn_ctx *ctx, merger_data *data)
 grn_inline static void
 merger_put_next_id(grn_ctx *ctx, merger_data *data, docinfo *id)
 {
-  uint32_t dgap = id->rid - data->last_id.rid;
-  uint32_t sgap = (dgap ? id->sid : id->sid - data->last_id.sid) - 1;
-  *(data->ridp) = dgap;
-  data->ridp++;
+  uint32_t record_id_gap = id->rid - data->last_id.rid;
+  *(data->dest.record_id_gaps) = record_id_gap;
+  data->dest.record_id_gaps++;
   if ((data->ii->header->flags & GRN_OBJ_WITH_SECTION)) {
-    *(data->sidp) = sgap;
-    data->sidp++;
+    uint32_t section_id_gap;
+    if (record_id_gap) {
+      section_id_gap = id->sid - 1;
+    } else {
+      section_id_gap = id->sid - data->last_id.sid - 1;
+    }
+    *(data->dest.section_id_gaps) = section_id_gap;
+    data->dest.section_id_gaps++;
   }
-  *(data->tfp) = id->tf - 1;
-  data->tfp++;
+  *(data->dest.tfs) = id->tf - 1;
+  data->dest.tfs++;
   if ((data->ii->header->flags & GRN_OBJ_WITH_WEIGHT)) {
-    *data->weightp = id->weight;
-    data->weightp++;
+    *(data->dest.weights) = id->weight;
+    data->dest.weights++;
   }
   data->last_id.rid = id->rid;
   data->last_id.sid = id->sid;
@@ -3313,8 +3320,8 @@ merger_put_next_chunk(grn_ctx *ctx, merger_data *data)
       if ((data->ii->header->flags & GRN_OBJ_WITH_POSITION)) {
         uint32_t i;
         for (i = 0; i < data->cid.tf; i++) {
-          *(data->posp) = data->snp[i];
-          data->posp++;
+          *(data->dest.position_gaps) = data->snp[i];
+          data->dest.position_gaps++;
           data->spos += data->snp[i];
         }
       }
@@ -3388,9 +3395,9 @@ merger_put_next_buffer(grn_ctx *ctx, merger_data *data)
       merger_put_next_id(ctx, data, &(buffer_data->id));
       if ((data->ii->header->flags & GRN_OBJ_WITH_POSITION)) {
         while (buffer_data->id.tf--) {
-          GRN_B_DEC(*(data->posp), buffer_data->data);
-          data->spos += *(data->posp);
-          data->posp++;
+          GRN_B_DEC(*(data->dest.position_gaps), buffer_data->data);
+          data->spos += *(data->dest.position_gaps);
+          data->dest.position_gaps++;
         }
       }
     }
@@ -3555,15 +3562,15 @@ chunk_merge(grn_ctx *ctx,
     if (ctx->rc == GRN_SUCCESS) {
       {
         int j = 0;
-        data->ridp = dv[j++].data;
+        data->dest.record_id_gaps = dv[j++].data;
         if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
-          data->sidp = dv[j++].data;
+          data->dest.section_id_gaps = dv[j++].data;
         }
-        data->tfp = dv[j++].data;
+        data->dest.tfs = dv[j++].data;
         if ((ii->header->flags & GRN_OBJ_WITH_WEIGHT)) {
-          data->weightp = dv[j++].data;
+          data->dest.weights = dv[j++].data;
         }
-        data->posp = dv[j].data;
+        data->dest.position_gaps = dv[j].data;
       }
       merger_get_next_chunk(ctx, data);
       do {
@@ -3572,8 +3579,7 @@ chunk_merge(grn_ctx *ctx,
         }
       } while (buffer_data->id.rid <= rid || data->cid.rid);
       if (ctx->rc == GRN_SUCCESS) {
-        GRN_ASSERT(data->posp < dv[ii->n_elements].data);
-        ndf = data->ridp - dv[0].data;
+        ndf = data->dest.record_id_gaps - dv[0].data;
       }
     }
     datavec_fin(ctx, rdv);
@@ -3601,7 +3607,7 @@ chunk_merge(grn_ctx *ctx,
     uint8_t *enc;
     uint32_t encsize_probably_enough;
     uint32_t encsize;
-    uint32_t np = data->posp - dv[ii->n_elements - 1].data;
+    uint32_t np = data->dest.position_gaps - dv[ii->n_elements - 1].data;
     uint32_t f_s = (ndf < 3) ? 0 : USE_P_ENC;
     uint32_t f_d = ((ndf < 16) || (ndf <= (data->last_id.rid >> 8))) ? 0 : USE_P_ENC;
     dv[j].data_size = ndf; dv[j++].flags = f_d;
@@ -3918,15 +3924,15 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
     }
     {
       int j = 0;
-      data.ridp = dv[j++].data;
+      data.dest.record_id_gaps = dv[j++].data;
       if ((ii->header->flags & GRN_OBJ_WITH_SECTION)) {
-        data.sidp = dv[j++].data;
+        data.dest.section_id_gaps = dv[j++].data;
       }
-      data.tfp = dv[j++].data;
+      data.dest.tfs = dv[j++].data;
       if ((ii->header->flags & GRN_OBJ_WITH_WEIGHT)) {
-        data.weightp = dv[j++].data;
+        data.dest.weights = dv[j++].data;
       }
-      data.posp = dv[j].data;
+      data.dest.position_gaps = dv[j].data;
     }
     data.last_id = null_docinfo;
     merger_get_next_chunk(ctx, &data);
@@ -3954,8 +3960,7 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
       }
       goto exit;
     }
-    GRN_ASSERT(data.posp < dv[ii->n_elements].data);
-    ndf = data.ridp - dv[0].data;
+    ndf = data.dest.record_id_gaps - dv[0].data;
     {
       grn_id tid = bt->tid & GRN_ID_MAX;
       uint32_t *a = array_at(ctx, ii, tid);
@@ -3979,7 +3984,11 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
                    data.last_id.tf == 1 &&
                    data.last_id.weight == 0) {
           a[0] = (data.last_id.rid << 12) + (data.last_id.sid << 1) + 1;
-          a[1] = (ii->header->flags & GRN_OBJ_WITH_POSITION) ? data.posp[-1] : 0;
+          if (ii->header->flags & GRN_OBJ_WITH_POSITION) {
+            a[1] = data.dest.position_gaps[-1];
+          } else {
+            a[1] = 0;
+          }
           memset(bt, 0, sizeof(buffer_term));
           nterms_void++;
         } else if (!(ii->header->flags & GRN_OBJ_WITH_SECTION) &&
@@ -3988,7 +3997,11 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
                    data.last_id.tf == 1 &&
                    data.last_id.weight == 0) {
           a[0] = (data.last_id.rid << 1) + 1;
-          a[1] = (ii->header->flags & GRN_OBJ_WITH_POSITION) ? data.posp[-1] : 0;
+          if (ii->header->flags & GRN_OBJ_WITH_POSITION) {
+            a[1] = data.dest.position_gaps[-1];
+          } else {
+            a[1] = 0;
+          }
           memset(bt, 0, sizeof(buffer_term));
           nterms_void++;
         } else {
@@ -4006,7 +4019,7 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
             dv[j].data_size = ndf; dv[j++].flags = f_s;
           }
           if ((ii->header->flags & GRN_OBJ_WITH_POSITION)) {
-            uint32_t np = data.posp - dv[ii->n_elements - 1].data;
+            uint32_t np = data.dest.position_gaps - dv[ii->n_elements - 1].data;
             uint32_t f_p = ((np < 32) || (np <= (data.spos >> 13))) ? 0 : USE_P_ENC;
             dv[j].data_size = np; dv[j].flags = f_p|ODD;
           }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20190214/cf0bcfb2/attachment-0001.html>


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