Kouhei Sutou
null+****@clear*****
Thu Nov 10 12:00:16 JST 2016
Kouhei Sutou 2016-11-10 12:00:16 +0900 (Thu, 10 Nov 2016) New Revision: 62b61ca9b2e3644012ea2c8a73c7dc212196613e https://github.com/groonga/groonga/commit/62b61ca9b2e3644012ea2c8a73c7dc212196613e Message: Extract common code Modified files: lib/store.c Modified: lib/store.c (+30 -26) =================================================================== --- lib/store.c 2016-11-10 11:56:24 +0900 (09a44bb) +++ lib/store.c 2016-11-10 12:00:16 +0900 (154c33d) @@ -1237,6 +1237,34 @@ grn_ja_ref_packed(grn_ctx *ctx, return NULL; } } + +static grn_rc +grn_ja_put_packed(grn_ctx *ctx, + grn_ja *ja, + grn_id id, + void *value, + uint32_t value_len, + int flags, + uint64_t *cas) +{ + char *packed_value[COMPRESS_PACKED_VALUE_SIZE_MAX]; + uint32_t packed_value_len; + uint64_t packed_value_meta; + + packed_value_len = value_len + sizeof(uint64_t); + packed_value_meta = value_len | COMPRESSED_VALUE_META_FLAG_RAW; + *((uint64_t *)packed_value) = packed_value_meta; + memcpy(((uint64_t *)packed_value) + 1, + value, + value_len); + return grn_ja_put_raw(ctx, + ja, + id, + packed_value, + packed_value_len, + flags, + cas); +} #endif /* defined(GRN_WITH_ZLIB) || defined(GRN_WITH_LZ4) */ #ifdef GRN_WITH_ZLIB @@ -1411,19 +1439,7 @@ grn_ja_put_zlib(grn_ctx *ctx, grn_ja *ja, grn_id id, } if (value_len < COMPRESS_THRESHOLD_BYTE) { - char *packed_value[COMPRESS_PACKED_VALUE_SIZE_MAX]; - uint32_t packed_value_len; - uint64_t packed_value_meta; - - packed_value_len = value_len + sizeof(uint64_t); - packed_value_meta = value_len | COMPRESSED_VALUE_META_FLAG_RAW; - *((uint64_t *)packed_value) = packed_value_meta; - memcpy(((uint64_t *)packed_value) + 1, - value, - value_len); - return grn_ja_put_raw(ctx, ja, id, - packed_value, packed_value_len, - flags, cas); + return grn_ja_put_packed(ctx, ja, id, value, value_len, flags, cas); } zstream.next_in = value; @@ -1476,19 +1492,7 @@ grn_ja_put_lz4(grn_ctx *ctx, grn_ja *ja, grn_id id, } if (value_len < COMPRESS_THRESHOLD_BYTE) { - char *packed_value[COMPRESS_PACKED_VALUE_SIZE_MAX]; - uint32_t packed_value_len; - uint64_t packed_value_meta; - - packed_value_len = value_len + sizeof(uint64_t); - packed_value_meta = value_len | COMPRESSED_VALUE_META_FLAG_RAW; - *((uint64_t *)packed_value) = packed_value_meta; - memcpy(((uint64_t *)packed_value) + 1, - value, - value_len); - return grn_ja_put_raw(ctx, ja, id, - packed_value, packed_value_len, - flags, cas); + return grn_ja_put_packed(ctx, ja, id, value, value_len, flags, cas); } if (value_len > (uint32_t)LZ4_MAX_INPUT_SIZE) { -------------- next part -------------- HTML����������������������������...Download