[Groonga-commit] groonga/groonga at 8e00151 [master] Initialize ctx->impl in grn_ctx_init()

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Dec 17 11:07:42 JST 2014


Kouhei Sutou	2014-12-17 11:07:42 +0900 (Wed, 17 Dec 2014)

  New Revision: 8e00151d334066e2e2bd346ebf0a0e6597c2ec6d
  https://github.com/groonga/groonga/commit/8e00151d334066e2e2bd346ebf0a0e6597c2ec6d

  Message:
    Initialize ctx->impl in grn_ctx_init()
    
    Remove lazy ctx->impl initialization feature because it's not useful for
    now.

  Modified files:
    lib/ctx.c

  Modified: lib/ctx.c (+17 -8)
===================================================================
--- lib/ctx.c    2014-12-17 09:15:40 +0900 (4c978df)
+++ lib/ctx.c    2014-12-17 11:07:42 +0900 (00ae86a)
@@ -560,8 +560,8 @@ grn_ctx_impl_set_current_error_message(grn_ctx *ctx)
   strcpy(ctx->impl->previous_errbuf, ctx->errbuf);
 }
 
-grn_rc
-grn_ctx_init(grn_ctx *ctx, int flags)
+static grn_rc
+grn_ctx_init_internal(grn_ctx *ctx, int flags)
 {
   if (!ctx) { return GRN_INVALID_ARGUMENT; }
   // if (ctx->stat != GRN_CTX_FIN) { return GRN_INVALID_ARGUMENT; }
@@ -592,6 +592,20 @@ grn_ctx_init(grn_ctx *ctx, int flags)
   return ctx->rc;
 }
 
+grn_rc
+grn_ctx_init(grn_ctx *ctx, int flags)
+{
+  grn_rc rc;
+
+  rc = grn_ctx_init_internal(ctx, flags);
+  if (rc == GRN_SUCCESS) {
+    grn_ctx_impl_init(ctx);
+    rc = ctx->rc;
+  }
+
+  return rc;
+}
+
 grn_ctx *
 grn_ctx_open(int flags)
 {
@@ -707,7 +721,6 @@ grn_ctx_set_finalizer(grn_ctx *ctx, grn_proc_func *finalizer)
 {
   if (!ctx) { return GRN_INVALID_ARGUMENT; }
   if (!ctx->impl) {
-    grn_ctx_impl_init(ctx);
     if (ERRP(ctx, GRN_ERROR)) { return ctx->rc; }
   }
   ctx->impl->finalizer = finalizer;
@@ -1228,7 +1241,7 @@ grn_init(void)
   grn_gtick = 0;
   ctx->next = ctx;
   ctx->prev = ctx;
-  grn_ctx_init(ctx, 0);
+  grn_ctx_init_internal(ctx, 0);
   ctx->encoding = grn_encoding_parse(GRN_DEFAULT_ENCODING);
   grn_timeval_now(ctx, &grn_starttime);
 #ifdef WIN32
@@ -1405,7 +1418,6 @@ grn_rc
 grn_ctx_connect(grn_ctx *ctx, const char *host, int port, int flags)
 {
   GRN_API_ENTER;
-  if (!ctx->impl) { grn_ctx_impl_init(ctx); }
   if (!ctx->impl) { goto exit; }
   {
     grn_com *com = grn_com_copen(ctx, NULL, host, port);
@@ -2279,7 +2291,6 @@ grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags,
   void *res = NULL;
   if (!ctx) { return res; }
   if (!ctx->impl) {
-    grn_ctx_impl_init(ctx);
     if (ERRP(ctx, GRN_ERROR)) { return res; }
   }
   CRITICAL_SECTION_ENTER(ctx->impl->lock);
@@ -2466,7 +2477,6 @@ grn_ctx_use(grn_ctx *ctx, grn_obj *db)
   if (db && !DB_P(db)) {
     ctx->rc = GRN_INVALID_ARGUMENT;
   } else {
-    if (!ctx->impl) { grn_ctx_impl_init(ctx); }
     if (!ctx->rc) {
       ctx->impl->db = db;
       if (db) {
@@ -2487,7 +2497,6 @@ grn_ctx_alloc_lifo(grn_ctx *ctx, size_t size,
 {
   if (!ctx) { return NULL; }
   if (!ctx->impl) {
-    grn_ctx_impl_init(ctx);
     if (ERRP(ctx, GRN_ERROR)) { return NULL; }
   }
   {
-------------- next part --------------
HTML����������������������������...
Download 



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