[Groonga-commit] groonga/groonga [master] Fixed a bug in grn_array_delete_by_id() thanks to Masahiro Tomita!

Back to archive index

null+****@clear***** null+****@clear*****
2010年 12月 21日 (火) 16:58:52 JST


Daijiro MORI	2010-12-21 07:58:52 +0000 (Tue, 21 Dec 2010)

  New Revision: 82c681f45f4fa409e25059495cbeb5b8593265d5

  Log:
    Fixed a bug in grn_array_delete_by_id() thanks to Masahiro Tomita!

  Modified files:
    lib/hash.c

  Modified: lib/hash.c (+4 -2)
===================================================================
--- lib/hash.c    2010-12-15 11:02:04 +0000 (7884df1)
+++ lib/hash.c    2010-12-21 07:58:52 +0000 (2f130ea)
@@ -400,6 +400,8 @@ grn_array_delete_by_id(grn_ctx *ctx, grn_array *array, grn_id id,
       if (!ee) { rc = GRN_INVALID_ARGUMENT; goto exit; }
       *((grn_id *)ee) = hh->garbages;
       hh->garbages = id;
+      (*array->n_entries)--;
+      (*array->n_garbages)++;
     }
     GRN_IO_ARRAY_BIT_OFF(array->io, array_seg_bitmap, id);
   } else {
@@ -409,11 +411,11 @@ grn_array_delete_by_id(grn_ctx *ctx, grn_array *array, grn_id id,
       if (!ee) { rc = GRN_INVALID_ARGUMENT; goto exit; }
       *((grn_id *)ee) = array->garbages;
       array->garbages = id;
+      (*array->n_entries)--;
+      (*array->n_garbages)++;
     }
     GRN_TINY_ARRAY_BIT_OFF(&array->bitmap, id);
   }
-  (*array->n_entries)--;
-  (*array->n_garbages)++;
 exit :
   /* unlock */
   return rc;




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