You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/08/26 00:57:09 UTC
[lucy-commits] [07/14] git commit: refs/heads/cfish-string-prep1 - Eliminate CB_setf
in SortFieldWriter
Eliminate CB_setf in SortFieldWriter
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/68d55986
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/68d55986
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/68d55986
Branch: refs/heads/cfish-string-prep1
Commit: 68d55986f280c0f74f7fa0d4336479013054c701
Parents: 4e5bf94
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Aug 25 22:05:05 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Aug 26 00:54:48 2013 +0200
----------------------------------------------------------------------
core/Lucy/Index/SortFieldWriter.c | 62 +++++++++++++++++++---------------
1 file changed, 35 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/68d55986/core/Lucy/Index/SortFieldWriter.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/SortFieldWriter.c b/core/Lucy/Index/SortFieldWriter.c
index 9e9ee04..51d81ad 100644
--- a/core/Lucy/Index/SortFieldWriter.c
+++ b/core/Lucy/Index/SortFieldWriter.c
@@ -500,18 +500,20 @@ SortFieldWriter_Flip_IMP(SortFieldWriter *self) {
else if (num_runs) {
Folder *folder = PolyReader_Get_Folder(ivars->polyreader);
CharBuf *seg_name = Seg_Get_Name(ivars->segment);
- CharBuf *filepath = CB_newf("%o/sort_ord_temp", seg_name);
- ivars->ord_in = Folder_Open_In(folder, filepath);
+ CharBuf *ord_path = CB_newf("%o/sort_ord_temp", seg_name);
+ ivars->ord_in = Folder_Open_In(folder, ord_path);
+ DECREF(ord_path);
if (!ivars->ord_in) { RETHROW(INCREF(Err_get_error())); }
if (ivars->var_width) {
- CB_setf(filepath, "%o/sort_ix_temp", seg_name);
- ivars->ix_in = Folder_Open_In(folder, filepath);
+ CharBuf *ix_path = CB_newf("%o/sort_ix_temp", seg_name);
+ ivars->ix_in = Folder_Open_In(folder, ix_path);
+ DECREF(ix_path);
if (!ivars->ix_in) { RETHROW(INCREF(Err_get_error())); }
}
- CB_setf(filepath, "%o/sort_dat_temp", seg_name);
- ivars->dat_in = Folder_Open_In(folder, filepath);
+ CharBuf *dat_path = CB_newf("%o/sort_dat_temp", seg_name);
+ ivars->dat_in = Folder_Open_In(folder, dat_path);
+ DECREF(dat_path);
if (!ivars->dat_in) { RETHROW(INCREF(Err_get_error())); }
- DECREF(filepath);
// Assign streams and a slice of mem_thresh.
size_t sub_thresh = ivars->mem_thresh / num_runs;
@@ -613,21 +615,23 @@ SortFieldWriter_Finish_IMP(SortFieldWriter *self) {
int32_t field_num = ivars->field_num;
Folder *folder = PolyReader_Get_Folder(ivars->polyreader);
CharBuf *seg_name = Seg_Get_Name(ivars->segment);
- CharBuf *path = CB_newf("%o/sort-%i32.ord", seg_name, field_num);
// Open streams.
- OutStream *ord_out = Folder_Open_Out(folder, path);
+ CharBuf *ord_path = CB_newf("%o/sort-%i32.ord", seg_name, field_num);
+ OutStream *ord_out = Folder_Open_Out(folder, ord_path);
+ DECREF(ord_path);
if (!ord_out) { RETHROW(INCREF(Err_get_error())); }
OutStream *ix_out = NULL;
if (ivars->var_width) {
- CB_setf(path, "%o/sort-%i32.ix", seg_name, field_num);
- ix_out = Folder_Open_Out(folder, path);
+ CharBuf *ix_path = CB_newf("%o/sort-%i32.ix", seg_name, field_num);
+ ix_out = Folder_Open_Out(folder, ix_path);
+ DECREF(ix_path);
if (!ix_out) { RETHROW(INCREF(Err_get_error())); }
}
- CB_setf(path, "%o/sort-%i32.dat", seg_name, field_num);
- OutStream *dat_out = Folder_Open_Out(folder, path);
+ CharBuf *dat_path = CB_newf("%o/sort-%i32.dat", seg_name, field_num);
+ OutStream *dat_out = Folder_Open_Out(folder, dat_path);
+ DECREF(dat_path);
if (!dat_out) { RETHROW(INCREF(Err_get_error())); }
- DECREF(path);
int32_t cardinality = S_write_files(self, ord_out, ix_out, dat_out);
@@ -661,23 +665,27 @@ S_flip_run(SortFieldWriter *run, size_t sub_thresh, InStream *ord_in,
if (run_ivars->sort_cache) { return; }
// Open the temp files for reading.
- CharBuf *seg_name = Seg_Get_Name(run_ivars->segment);
- CharBuf *alias = CB_newf("%o/sort_ord_temp-%i64-to-%i64", seg_name,
- run_ivars->ord_start, run_ivars->ord_end);
- InStream *ord_in_dupe = InStream_Reopen(ord_in, alias, run_ivars->ord_start,
- run_ivars->ord_end - run_ivars->ord_start);
+ CharBuf *seg_name = Seg_Get_Name(run_ivars->segment);
+ CharBuf *ord_alias = CB_newf("%o/sort_ord_temp-%i64-to-%i64", seg_name,
+ run_ivars->ord_start, run_ivars->ord_end);
+ InStream *ord_in_dupe
+ = InStream_Reopen(ord_in, ord_alias, run_ivars->ord_start,
+ run_ivars->ord_end - run_ivars->ord_start);
+ DECREF(ord_alias);
InStream *ix_in_dupe = NULL;
if (run_ivars->var_width) {
- CB_setf(alias, "%o/sort_ix_temp-%i64-to-%i64", seg_name,
- run_ivars->ix_start, run_ivars->ix_end);
- ix_in_dupe = InStream_Reopen(ix_in, alias, run_ivars->ix_start,
+ CharBuf *ix_alias = CB_newf("%o/sort_ix_temp-%i64-to-%i64", seg_name,
+ run_ivars->ix_start, run_ivars->ix_end);
+ ix_in_dupe = InStream_Reopen(ix_in, ix_alias, run_ivars->ix_start,
run_ivars->ix_end - run_ivars->ix_start);
+ DECREF(ix_alias);
}
- CB_setf(alias, "%o/sort_dat_temp-%i64-to-%i64", seg_name,
- run_ivars->dat_start, run_ivars->dat_end);
- InStream *dat_in_dupe = InStream_Reopen(dat_in, alias, run_ivars->dat_start,
- run_ivars->dat_end - run_ivars->dat_start);
- DECREF(alias);
+ CharBuf *dat_alias = CB_newf("%o/sort_dat_temp-%i64-to-%i64", seg_name,
+ run_ivars->dat_start, run_ivars->dat_end);
+ InStream *dat_in_dupe
+ = InStream_Reopen(dat_in, dat_alias, run_ivars->dat_start,
+ run_ivars->dat_end - run_ivars->dat_start);
+ DECREF(dat_alias);
// Get a SortCache.
CharBuf *field = Seg_Field_Name(run_ivars->segment, run_ivars->field_num);