null+****@clear*****
null+****@clear*****
2010年 8月 5日 (木) 12:06:30 JST
Kouhei Sutou 2010-08-05 03:06:30 +0000 (Thu, 05 Aug 2010) New Revision: a898df37a48bbfaefd4bba5d5254de410c0b5a5e Log: don't pass needless variables. Modified files: lib/db.c Modified: lib/db.c (+19 -27) =================================================================== --- lib/db.c 2010-08-05 03:04:45 +0000 (6222633) +++ lib/db.c 2010-08-05 03:06:30 +0000 (bef5a31) @@ -6577,9 +6577,7 @@ grn_table_sort_geo_detect_far_point(grn_ctx *ctx, grn_obj *table, grn_obj *index grn_pat *pat, geo_entry *entries, grn_pat_cursor *pc, int n, int accessorp, grn_geo_point *base_point, - double *d_far, - grn_geo_point *geo_min, grn_geo_point *geo_max, - int *diff_bit) + double *d_far, int *diff_bit) { int i = 0, diff_bit_prev, diff_bit_current; grn_id tid; @@ -6637,8 +6635,6 @@ grn_table_sort_geo_detect_far_point(grn_ctx *ctx, grn_obj *table, grn_obj *index } } - compute_min_and_max(base_point, *diff_bit, geo_min, geo_max); - return i; } @@ -6697,36 +6693,36 @@ grn_table_sort_geo_collect_points(grn_ctx *ctx, grn_obj *table, grn_obj *index, geo_entry *entries, int n_entries, int n, int accessorp, grn_geo_point *base_point, - double d_far, - grn_geo_point *geo_min, grn_geo_point *geo_max, - int diff_bit) + double d_far, int diff_bit) { int n_meshes; - grn_geo_point geo_base; + grn_geo_point geo_base, geo_min, geo_max; mesh_entry meshes[19]; int lat_diff, lng_diff; double d; geo_entry *ep, *p; mesh_position position; - lat_diff = geo_max->latitude - geo_min->latitude + 1; - lng_diff = geo_max->longitude - geo_min->longitude + 1; - if (base_point->latitude >= geo_min->latitude + lat_diff / 2) { - geo_base.latitude = geo_max->latitude + 1; - if (base_point->longitude >= geo_min->longitude + lng_diff / 2) { - geo_base.longitude = geo_max->longitude + 1; + compute_min_and_max(base_point, diff_bit, &geo_min, &geo_max); + + lat_diff = geo_max.latitude - geo_min.latitude + 1; + lng_diff = geo_max.longitude - geo_min.longitude + 1; + if (base_point->latitude >= geo_min.latitude + lat_diff / 2) { + geo_base.latitude = geo_max.latitude + 1; + if (base_point->longitude >= geo_min.longitude + lng_diff / 2) { + geo_base.longitude = geo_max.longitude + 1; position = MESH_LEFT_BOTTOM; } else { - geo_base.longitude = geo_min->longitude; + geo_base.longitude = geo_min.longitude; position = MESH_RIGHT_BOTTOM; } } else { - geo_base.latitude = geo_min->latitude; - if (base_point->longitude >= geo_min->longitude + lng_diff / 2) { - geo_base.longitude = geo_max->longitude + 1; + geo_base.latitude = geo_min.latitude; + if (base_point->longitude >= geo_min.longitude + lng_diff / 2) { + geo_base.longitude = geo_max.longitude + 1; position = MESH_LEFT_TOP; } else { - geo_base.longitude = geo_min->longitude; + geo_base.longitude = geo_min.longitude; position = MESH_RIGHT_TOP; } } @@ -6931,23 +6927,19 @@ grn_table_sort_geo(grn_ctx *ctx, grn_obj *table, int offset, int limit, int n, diff_bit; double d_far; grn_id *v; - grn_geo_point *base_point, geo_min, geo_max; + grn_geo_point *base_point; geo_entry *ep; base_point = (grn_geo_point *)GRN_BULK_HEAD(arg); n = grn_table_sort_geo_detect_far_point(ctx, table, index, pat, entries, pc, e, accessorp, base_point, - &d_far, - &geo_min, &geo_max, - &diff_bit); + &d_far, &diff_bit); grn_pat_cursor_close(ctx, pc); if (diff_bit > 0) { n += grn_table_sort_geo_collect_points(ctx, table, index, pat, entries, n, e, accessorp, - base_point, d_far, - &geo_min, &geo_max, - diff_bit); + base_point, d_far, diff_bit); } for (i = 0, ep = entries + offset; i < limit && ep < entries + n; i++, ep++) { if (!grn_array_add(ctx, (grn_array *)result, (void **)&v)) { break; }