[Groonga-commit] groonga/groonga [master] Extract common code

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Nov 7 15:31:54 JST 2012


Kouhei Sutou	2012-11-07 15:31:54 +0900 (Wed, 07 Nov 2012)

  New Revision: d12e6a893a36dc9553a25e0b83eba7ab4f210c24
  https://github.com/groonga/groonga/commit/d12e6a893a36dc9553a25e0b83eba7ab4f210c24

  Log:
    Extract common code

  Modified files:
    lib/output.c

  Modified: lib/output.c (+16 -8)
===================================================================
--- lib/output.c    2012-11-07 14:53:23 +0900 (0a9893d)
+++ lib/output.c    2012-11-07 15:31:54 +0900 (d35dd95)
@@ -1130,6 +1130,16 @@ grn_output_table_columns(grn_ctx *ctx, grn_obj *outbuf,
 }
 
 static inline void
+grn_output_table_record_by_expression(grn_ctx *ctx, grn_obj *outbuf,
+                                      grn_content_type output_type,
+                                      grn_obj *expression)
+{
+  grn_obj *result;
+  result = grn_expr_exec(ctx, expression, 0);
+  grn_output_obj(ctx, outbuf, output_type, result, NULL);
+}
+
+static inline void
 grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf,
                                        grn_content_type output_type,
                                        grn_table_cursor *tc,
@@ -1150,7 +1160,6 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf,
     grn_output_array_open(ctx, outbuf, output_type, "HIT", n_elements);
     for (code = expr->codes; code < code_end; code++) {
       if (code->op == GRN_OP_COMMA) {
-        grn_obj *res;
         int code_start_offset = previous_comma_offset + 1;
         int code_end_offset = code - expr->codes - code_start_offset;
         int original_codes_curr = expr->codes_curr;
@@ -1168,16 +1177,16 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf,
               expr->codes_curr -= n_args;
             }
           }
-          res = grn_expr_exec(ctx, format->expression, 0);
-          grn_output_obj(ctx, outbuf, output_type, res, NULL);
+          grn_output_table_record_by_expression(ctx, outbuf, output_type,
+                                                format->expression);
           code_start_offset = expr->codes_curr;
           code_end_offset -= expr->codes_curr;
           is_first_comma = GRN_FALSE;
         }
         expr->codes += code_start_offset;
         expr->codes_curr = code_end_offset;
-        res = grn_expr_exec(ctx, format->expression, 0);
-        grn_output_obj(ctx, outbuf, output_type, res, NULL);
+        grn_output_table_record_by_expression(ctx, outbuf, output_type,
+                                              format->expression);
         expr->codes -= code_start_offset;
         expr->codes_curr = original_codes_curr;
         previous_comma_offset = code - expr->codes;
@@ -1185,9 +1194,8 @@ grn_output_table_records_by_expression(grn_ctx *ctx, grn_obj *outbuf,
     }
 
     if (!have_comma && expr->codes_curr > 0) {
-      grn_obj *res;
-      res = grn_expr_exec(ctx, format->expression, 0);
-      grn_output_obj(ctx, outbuf, output_type, res, NULL);
+      grn_output_table_record_by_expression(ctx, outbuf, output_type,
+                                            format->expression);
     }
 
     grn_output_array_close(ctx, outbuf, output_type);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index