susumu.yata
null+****@clear*****
Fri May 1 15:46:06 JST 2015
susumu.yata 2015-05-01 15:46:06 +0900 (Fri, 01 May 2015) New Revision: 712afc362a4613fbb9b6ebbd6ae22312ff9016bb https://github.com/groonga/grnxx/commit/712afc362a4613fbb9b6ebbd6ae22312ff9016bb Message: Gnx: use GRN_BULK_*(). Modified files: go3/gnx/grn_cgo.c Modified: go3/gnx/grn_cgo.c (+9 -15) =================================================================== --- go3/gnx/grn_cgo.c 2015-05-01 15:41:30 +0900 (8878586) +++ go3/gnx/grn_cgo.c 2015-05-01 15:46:06 +0900 (9fc2526) @@ -382,12 +382,10 @@ grn_bool grn_cgo_column_get_bool_vector(grn_ctx *ctx, grn_obj *column, grn_obj value_obj; GRN_BOOL_INIT(&value_obj, GRN_OBJ_VECTOR); grn_obj_get_value(ctx, column, id, &value_obj); - size_t size = grn_uvector_size(ctx, &value_obj); + size_t size_in_bytes = GRN_BULK_VSIZE(&value_obj); + size_t size = size_in_bytes / sizeof(grn_bool); if (size <= value->size) { - size_t i; - for (i = 0; i < size; i++) { - ((grn_bool *)value->ptr)[i] = GRN_BOOL_VALUE_AT(&value_obj, i); - } + memcpy(value->ptr, GRN_BULK_HEAD(&value_obj), size_in_bytes); } value->size = size; GRN_OBJ_FIN(ctx, &value_obj); @@ -399,12 +397,10 @@ grn_bool grn_cgo_column_get_int_vector(grn_ctx *ctx, grn_obj *column, grn_obj value_obj; GRN_INT64_INIT(&value_obj, GRN_OBJ_VECTOR); grn_obj_get_value(ctx, column, id, &value_obj); - size_t size = grn_uvector_size(ctx, &value_obj); + size_t size_in_bytes = GRN_BULK_VSIZE(&value_obj); + size_t size = size_in_bytes / sizeof(int64_t); if (size <= value->size) { - size_t i; - for (i = 0; i < size; i++) { - ((int64_t *)value->ptr)[i] = GRN_INT64_VALUE_AT(&value_obj, i); - } + memcpy(value->ptr, GRN_BULK_HEAD(&value_obj), size_in_bytes); } value->size = size; GRN_OBJ_FIN(ctx, &value_obj); @@ -416,12 +412,10 @@ grn_bool grn_cgo_column_get_float_vector(grn_ctx *ctx, grn_obj *column, grn_obj value_obj; GRN_FLOAT_INIT(&value_obj, GRN_OBJ_VECTOR); grn_obj_get_value(ctx, column, id, &value_obj); - size_t size = grn_uvector_size(ctx, &value_obj); + size_t size_in_bytes = GRN_BULK_VSIZE(&value_obj); + size_t size = size_in_bytes / sizeof(double); if (size <= value->size) { - size_t i; - for (i = 0; i < size; i++) { - ((double *)value->ptr)[i] = GRN_FLOAT_VALUE_AT(&value_obj, i); - } + memcpy(value->ptr, GRN_BULK_HEAD(&value_obj), size_in_bytes); } value->size = size; GRN_OBJ_FIN(ctx, &value_obj); -------------- next part -------------- HTML����������������������������...Download