null+****@clear*****
null+****@clear*****
2011年 9月 25日 (日) 23:09:33 JST
Kouhei Sutou 2011-09-25 14:09:33 +0000 (Sun, 25 Sep 2011) New Revision: 5cae959e729fa92436e8310806474ff28b3fcda0 Log: reduce memory allocation. Modified files: ha_mroonga.cc Modified: ha_mroonga.cc (+5 -8) =================================================================== --- ha_mroonga.cc 2011-09-25 14:07:09 +0000 (815782c) +++ ha_mroonga.cc 2011-09-25 14:09:33 +0000 (d6f6e50) @@ -3181,23 +3181,22 @@ int ha_mroonga::storage_write_row(uchar *buf) void *pkey = NULL; int pkey_size = 0; - grn_obj pkey_data; - GRN_VOID_INIT(&pkey_data); uint pkey_nr = table->s->primary_key; + GRN_BULK_REWIND(&key_buffer); if (pkey_nr != MAX_INDEXES) { KEY key_info = table->key_info[pkey_nr]; if (key_info.key_parts == 1) { Field *pkey_field = key_info.key_part[0].field; - mrn_set_buf(ctx, pkey_field, &pkey_data, &pkey_size); - pkey = GRN_TEXT_VALUE(&pkey_data); + mrn_set_buf(ctx, pkey_field, &key_buffer, &pkey_size); + pkey = GRN_TEXT_VALUE(&key_buffer); } else { uchar key[MRN_MAX_KEY_SIZE]; key_copy(key, buf, &key_info, key_info.key_length); - grn_bulk_space(ctx, &pkey_data, key_info.key_length); + grn_bulk_space(ctx, &key_buffer, key_info.key_length); pkey = mrn_multiple_column_key_encode(&key_info, key, key_info.key_length, - (uchar *)(GRN_TEXT_VALUE(&pkey_data)), + (uchar *)(GRN_TEXT_VALUE(&key_buffer)), (uint *)&pkey_size); } } @@ -3209,10 +3208,8 @@ int ha_mroonga::storage_write_row(uchar *buf) dbug_tmp_restore_column_map(table->read_set, tmp_map); #endif my_message(ER_ERROR_ON_WRITE, ctx->errbuf, MYF(0)); - grn_obj_unlink(ctx, &pkey_data); DBUG_RETURN(ER_ERROR_ON_WRITE); } - grn_obj_unlink(ctx, &pkey_data); if (!added) { // duplicated error #ifndef DBUG_OFF