[Groonga-commit] groonga/groonga [master] clear ctx->impl->values in grn_db_close()

Back to archive index

null+****@clear***** null+****@clear*****
2011年 12月 12日 (月) 14:53:47 JST


Daijiro MORI	2011-12-12 05:53:47 +0000 (Mon, 12 Dec 2011)

  New Revision: 4096b411f37c835f1b2771e81d36d0cb82234919

  Log:
    clear ctx->impl->values in grn_db_close()

  Modified files:
    lib/db.c

  Modified: lib/db.c (+10 -0)
===================================================================
--- lib/db.c    2011-12-12 01:39:43 +0000 (615b018)
+++ lib/db.c    2011-12-12 05:53:47 +0000 (d1681d0)
@@ -242,6 +242,16 @@ grn_db_close(grn_ctx *ctx, grn_obj *db)
   ctx_used_db = ctx->impl && ctx->impl->db == db;
   if (ctx_used_db) {
     grn_ctx_loader_clear(ctx);
+    if (ctx->impl->parser) {
+      grn_expr_parser_close(ctx);
+    }
+    if (ctx->impl->values) {
+      grn_tmp_db_obj *o;
+      GRN_ARRAY_EACH(ctx, ctx->impl->values, 0, 0, id, &o, {
+        grn_obj_close(ctx, (grn_obj *)o->obj);
+      });
+      grn_array_truncate(ctx, ctx->impl->values);
+    }
   }
   GRN_TINY_ARRAY_EACH(&s->values, 1, grn_db_curr_id(ctx, db), id, vp, {
     if (vp->ptr) { grn_obj_close(ctx, vp->ptr); }




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