Susumu Yata
null+****@clear*****
Tue Apr 5 12:28:33 JST 2016
Susumu Yata 2016-04-05 12:28:33 +0900 (Tue, 05 Apr 2016) New Revision: 0bd7c32b6c065809e70e085d685315eb25a06100 https://github.com/groonga/groonga/commit/0bd7c32b6c065809e70e085d685315eb25a06100 Message: store: don't use grn_gctx for memory allocation GitHub: #513 Modified files: lib/store.c Modified: lib/store.c (+28 -49) =================================================================== --- lib/store.c 2016-04-05 12:06:47 +0900 (6a09009) +++ lib/store.c 2016-04-05 12:28:33 +0900 (00aedd7) @@ -58,10 +58,7 @@ _grn_ra_create(grn_ctx *ctx, grn_ra *ra, const char *path, unsigned int element_ grn_ra * grn_ra_create(grn_ctx *ctx, const char *path, unsigned int element_size) { - grn_ra *ra; - CRITICAL_SECTION_ENTER(grn_glock); - ra = GRN_GMALLOC(sizeof(grn_ra)); - CRITICAL_SECTION_LEAVE(grn_glock); + grn_ra *ra = GRN_MALLOCN(grn_ra, 1); if (!ra) { return NULL; } @@ -92,9 +89,7 @@ grn_ra_open(grn_ctx *ctx, const char *path) grn_io_close(ctx, io); return NULL; } - CRITICAL_SECTION_ENTER(grn_glock); - ra = GRN_GMALLOC(sizeof(grn_ra)); - CRITICAL_SECTION_LEAVE(grn_glock); + ra = GRN_MALLOCN(grn_ra, 1); if (!ra) { grn_io_close(ctx, io); return NULL; @@ -123,9 +118,7 @@ grn_ra_close(grn_ctx *ctx, grn_ra *ra) grn_rc rc; if (!ra) { return GRN_INVALID_ARGUMENT; } rc = grn_io_close(ctx, ra->io); - CRITICAL_SECTION_ENTER(grn_glock); - GRN_GFREE(ra); - CRITICAL_SECTION_LEAVE(grn_glock); + GRN_FREE(ra); return rc; } @@ -374,9 +367,7 @@ _grn_ja_create(grn_ctx *ctx, grn_ja *ja, const char *path, header_v2->segregate_threshold = GRN_JA_W_SEGREGATE_THRESH_V2; header_v2->n_element_variation = JA_N_ELEMENT_VARIATION_V2; - CRITICAL_SECTION_ENTER(grn_glock); - header = GRN_GMALLOC(sizeof(struct grn_ja_header)); - CRITICAL_SECTION_LEAVE(grn_glock); + header = GRN_MALLOCN(struct grn_ja_header, 1); if (!header) { grn_io_close(ctx, io); return NULL; @@ -404,9 +395,7 @@ grn_ja * grn_ja_create(grn_ctx *ctx, const char *path, unsigned int max_element_size, uint32_t flags) { grn_ja *ja = NULL; - CRITICAL_SECTION_ENTER(grn_glock); - ja = GRN_GMALLOC(sizeof(grn_ja)); - CRITICAL_SECTION_LEAVE(grn_glock); + ja = GRN_MALLOCN(grn_ja, 1); if (!ja) { return NULL; } @@ -443,22 +432,16 @@ grn_ja_open(grn_ctx *ctx, const char *path) if (header_v2->n_element_variation == 0) { header_v2->n_element_variation = JA_N_ELEMENT_VARIATION_V1; } - CRITICAL_SECTION_ENTER(grn_glock); - ja = GRN_GMALLOC(sizeof(grn_ja)); - CRITICAL_SECTION_LEAVE(grn_glock); + ja = GRN_MALLOCN(grn_ja, 1); if (!ja) { grn_io_close(ctx, io); return NULL; } GRN_DB_OBJ_SET_TYPE(ja, GRN_COLUMN_VAR_SIZE); - CRITICAL_SECTION_ENTER(grn_glock); - header = GRN_GMALLOC(sizeof(struct grn_ja_header)); - CRITICAL_SECTION_LEAVE(grn_glock); + header = GRN_MALLOCN(struct grn_ja_header, 1); if (!header) { grn_io_close(ctx, io); - CRITICAL_SECTION_ENTER(grn_glock); - GRN_GFREE(ja); - CRITICAL_SECTION_LEAVE(grn_glock); + GRN_FREE(ja); return NULL; } @@ -503,10 +486,8 @@ grn_ja_close(grn_ctx *ctx, grn_ja *ja) grn_rc rc; if (!ja) { return GRN_INVALID_ARGUMENT; } rc = grn_io_close(ctx, ja->io); - CRITICAL_SECTION_ENTER(grn_glock); - GRN_GFREE(ja->header); - GRN_GFREE(ja); - CRITICAL_SECTION_LEAVE(grn_glock); + GRN_FREE(ja->header); + GRN_FREE(ja); return rc; } @@ -538,9 +519,7 @@ grn_ja_truncate(grn_ctx *ctx, grn_ja *ja) if ((rc = grn_io_close(ctx, ja->io))) { goto exit; } ja->io = NULL; if (path && (rc = grn_io_remove(ctx, path))) { goto exit; } - CRITICAL_SECTION_ENTER(grn_glock); - GRN_GFREE(ja->header); - CRITICAL_SECTION_LEAVE(grn_glock); + GRN_FREE(ja->header); if (!_grn_ja_create(ctx, ja, path, max_element_size, flags)) { rc = GRN_UNKNOWN_ERROR; } @@ -2162,10 +2141,10 @@ grn_vgram * grn_vgram_create(const char *path) { grn_vgram *s; - if (!(s = GRN_GMALLOC(sizeof(grn_vgram)))) { return NULL; } + if (!(s = GRN_MALLOCN(grn_vgram, 1))) { return NULL; } s->vgram = grn_sym_create(path, sizeof(grn_id) * 2, 0, GRN_ENC_NONE); if (!s->vgram) { - GRN_GFREE(s); + GRN_FREE(s); return NULL; } return s; @@ -2175,10 +2154,10 @@ grn_vgram * grn_vgram_open(const char *path) { grn_vgram *s; - if (!(s = GRN_GMALLOC(sizeof(grn_vgram)))) { return NULL; } + if (!(s = GRN_MALLOCN(grn_vgram, 1))) { return NULL; } s->vgram = grn_sym_open(path); if (!s->vgram) { - GRN_GFREE(s); + GRN_FREE(s); return NULL; } return s; @@ -2188,13 +2167,13 @@ grn_vgram_buf * grn_vgram_buf_open(size_t len) { grn_vgram_buf *b; - if (!(b = GRN_GMALLOC(sizeof(grn_vgram_buf)))) { return NULL; } + if (!(b = GRN_MALLOCN(grn_vgram_buf, 1))) { return NULL; } b->len = len; - b->tvs = b->tvp = GRN_GMALLOC(sizeof(grn_id) * len); - if (!b->tvp) { GRN_GFREE(b); return NULL; } + b->tvs = b->tvp = GRN_MALLOCN(grn_id, len); + if (!b->tvp) { GRN_FREE(b); return NULL; } b->tve = b->tvs + len; - b->vps = b->vpp = GRN_GMALLOC(sizeof(grn_vgram_vnode) * len * 2); - if (!b->vpp) { GRN_GFREE(b->tvp); GRN_GFREE(b); return NULL; } + b->vps = b->vpp = GRN_MALLOCN(grn_vgram_vnode, len * 2); + if (!b->vpp) { GRN_FREE(b->tvp); GRN_FREE(b); return NULL; } b->vpe = b->vps + len; return b; } @@ -2314,7 +2293,7 @@ grn_vgram_update(grn_vgram *vgram, grn_id rid, grn_vgram_buf *b, grn_hash *terms int skip = 0; grn_set_eh *ehs, *ehp, *ehe; grn_set_sort_optarg arg; - uint8_t *ps = GRN_GMALLOC(b->len * 2), *pp, *pe; + uint8_t *ps = GRN_MALLOC(b->len * 2), *pp, *pe; if (!ps) { grn_set_close(th); return GRN_NO_MEMORY_AVAILABLE; @@ -2326,7 +2305,7 @@ grn_vgram_update(grn_vgram *vgram, grn_id rid, grn_vgram_buf *b, grn_hash *terms arg.compar_arg = (void *)(intptr_t)sizeof(grn_id); ehs = grn_set_sort(th, 0, &arg); if (!ehs) { - GRN_GFREE(ps); + GRN_FREE(ps); grn_set_close(th); return GRN_NO_MEMORY_AVAILABLE; } @@ -2350,8 +2329,8 @@ grn_vgram_update(grn_vgram *vgram, grn_id rid, grn_vgram_buf *b, grn_hash *terms len_sum += b->len; img_sum += pp - ps; skip_sum += skip; - GRN_GFREE(ehs); - GRN_GFREE(ps); + GRN_FREE(ehs); + GRN_FREE(ps); } grn_set_close(th); } @@ -2363,9 +2342,9 @@ grn_rc grn_vgram_buf_close(grn_vgram_buf *b) { if (!b) { return GRN_INVALID_ARGUMENT; } - if (b->tvs) { GRN_GFREE(b->tvs); } - if (b->vps) { GRN_GFREE(b->vps); } - GRN_GFREE(b); + if (b->tvs) { GRN_FREE(b->tvs); } + if (b->vps) { GRN_FREE(b->vps); } + GRN_FREE(b); return GRN_SUCCESS; } @@ -2375,7 +2354,7 @@ grn_vgram_close(grn_vgram *vgram) if (!vgram) { return GRN_INVALID_ARGUMENT; } GRN_LOG(ctx, GRN_LOG_DEBUG, "len=%d img=%d skip=%d simple=%d", len_sum, img_sum, skip_sum, simple_sum); grn_sym_close(vgram->vgram); - GRN_GFREE(vgram); + GRN_FREE(vgram); return GRN_SUCCESS; } */ -------------- next part -------------- HTML����������������������������... Télécharger