Kouhei Sutou
null+****@clear*****
Fri Nov 9 17:37:51 JST 2012
Kouhei Sutou 2012-11-09 17:37:51 +0900 (Fri, 09 Nov 2012) New Revision: ae33a347e2dcff9c8988aeca852a447a53a8832c https://github.com/groonga/groonga/commit/ae33a347e2dcff9c8988aeca852a447a53a8832c Log: Add NULL check Modified files: lib/ii.c Modified: lib/ii.c (+16 -14) =================================================================== --- lib/ii.c 2012-11-09 16:48:08 +0900 (c5a8f15) +++ lib/ii.c 2012-11-09 17:37:51 +0900 (eb80a0c) @@ -7279,23 +7279,25 @@ grn_ii_buffer_commit(grn_ctx *ctx, grn_ii_buffer *ii_buffer) grn_table_cursor *tc; tc = grn_table_cursor_open(ctx, ii_buffer->lexicon, NULL, 0, NULL, 0, 0, -1, II_BUFFER_ORDER); - while ((tid = grn_table_cursor_next(ctx, tc)) != GRN_ID_NIL) { - int nrests = 0; - int nhits = 0; - uint32_t i; - for (i = 0; i < ii_buffer->nblocks; i++) { - if (ii_buffer->blocks[i].tid == tid) { - hits[nhits++] = &ii_buffer->blocks[i]; + if (tc) { + while ((tid = grn_table_cursor_next(ctx, tc)) != GRN_ID_NIL) { + int nrests = 0; + int nhits = 0; + uint32_t i; + for (i = 0; i < ii_buffer->nblocks; i++) { + if (ii_buffer->blocks[i].tid == tid) { + hits[nhits++] = &ii_buffer->blocks[i]; + } + if (ii_buffer->blocks[i].tid) { nrests++; } } - if (ii_buffer->blocks[i].tid) { nrests++; } + if (nhits) { grn_ii_buffer_merge(ctx, ii_buffer, tid, hits, nhits); } + if (!nrests) { break; } } - if (nhits) { grn_ii_buffer_merge(ctx, ii_buffer, tid, hits, nhits); } - if (!nrests) { break; } - } - if (ii_buffer->packed_len) { - grn_ii_buffer_chunk_flush(ctx, ii_buffer); + if (ii_buffer->packed_len) { + grn_ii_buffer_chunk_flush(ctx, ii_buffer); + } + grn_table_cursor_close(ctx, tc); } - grn_table_cursor_close(ctx, tc); GRN_FREE(hits); } } -------------- next part -------------- HTML����������������������������... Download