You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2014/06/18 03:06:31 UTC
[lucy-commits] [09/16] git commit: refs/heads/master - Change type for SortEx buffer.
Change type for SortEx buffer.
Change buffer for SortExternal to an array of objects instead of
addresses.
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/c09c1dca
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/c09c1dca
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/c09c1dca
Branch: refs/heads/master
Commit: c09c1dcab745ed5ecdaa66e1e1c1a276263e418f
Parents: 7392ca1
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Tue Jan 8 17:11:59 2013 -0800
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Sat Apr 26 13:48:18 2014 -0700
----------------------------------------------------------------------
core/Lucy/Index/PostingPool.c | 9 ++++-----
core/Lucy/Util/BBSortEx.c | 7 +++----
core/Lucy/Util/SortExternal.c | 23 ++++++++++-------------
core/Lucy/Util/SortExternal.cfh | 4 ++--
4 files changed, 19 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/c09c1dca/core/Lucy/Index/PostingPool.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/PostingPool.c b/core/Lucy/Index/PostingPool.c
index 6628fc3..55eecc9 100644
--- a/core/Lucy/Index/PostingPool.c
+++ b/core/Lucy/Index/PostingPool.c
@@ -202,7 +202,7 @@ PostPool_Flip_IMP(PostingPool *self) {
PostPool_Grow_Cache(run, num_items);
PostingPoolIVARS *const run_ivars = PostPool_IVARS(run);
- memcpy(run_ivars->cache, ((Obj**)ivars->cache) + ivars->cache_tick,
+ memcpy(run_ivars->cache, (ivars->cache) + ivars->cache_tick,
num_items * sizeof(Obj*));
run_ivars->cache_max = num_items;
PostPool_Add_Run(self, (SortExternal*)run);
@@ -266,10 +266,10 @@ PostPool_Shrink_IMP(PostingPool *self) {
size_t cache_count = PostPool_Cache_Count(self);
size_t size = cache_count * sizeof(Obj*);
if (ivars->cache_tick > 0) {
- Obj **start = ((Obj**)ivars->cache) + ivars->cache_tick;
+ Obj **start = ivars->cache + ivars->cache_tick;
memmove(ivars->cache, start, size);
}
- ivars->cache = (uint8_t*)REALLOCATE(ivars->cache, size);
+ ivars->cache = (Obj**)REALLOCATE(ivars->cache, size);
ivars->cache_tick = 0;
ivars->cache_max = cache_count;
ivars->cache_cap = cache_count;
@@ -549,8 +549,7 @@ PostPool_Refill_IMP(PostingPool *self) {
size_t new_cap = Memory_oversize(num_elems + 1, sizeof(Obj*));
PostPool_Grow_Cache(self, new_cap);
}
- Obj **cache = (Obj**)ivars->cache;
- cache[num_elems] = (Obj*)rawpost;
+ ivars->cache[num_elems] = (Obj*)rawpost;
num_elems++;
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/c09c1dca/core/Lucy/Util/BBSortEx.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/BBSortEx.c b/core/Lucy/Util/BBSortEx.c
index fb50522..40238cf 100644
--- a/core/Lucy/Util/BBSortEx.c
+++ b/core/Lucy/Util/BBSortEx.c
@@ -52,7 +52,7 @@ BBSortEx_Destroy_IMP(BBSortEx *self) {
void
BBSortEx_Clear_Cache_IMP(BBSortEx *self) {
BBSortExIVARS *const ivars = BBSortEx_IVARS(self);
- Obj **const cache = (Obj**)ivars->cache;
+ Obj **const cache = ivars->cache;
for (uint32_t i = ivars->cache_tick, max = ivars->cache_max; i < max; i++) {
DECREF(cache[i]);
}
@@ -81,7 +81,7 @@ void
BBSortEx_Flush_IMP(BBSortEx *self) {
BBSortExIVARS *const ivars = BBSortEx_IVARS(self);
uint32_t cache_count = ivars->cache_max - ivars->cache_tick;
- Obj **cache = (Obj**)ivars->cache;
+ Obj **cache = ivars->cache;
VArray *elems;
if (!cache_count) { return; }
@@ -136,8 +136,7 @@ BBSortEx_Refill_IMP(BBSortEx *self) {
Memory_oversize(ivars->cache_max + 1,
sizeof(Obj*)));
}
- Obj **cache = (Obj**)ivars->cache;
- cache[ivars->cache_max++] = INCREF(elem);
+ ivars->cache[ivars->cache_max++] = INCREF(elem);
}
return ivars->cache_max;
http://git-wip-us.apache.org/repos/asf/lucy/blob/c09c1dca/core/Lucy/Util/SortExternal.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/SortExternal.c b/core/Lucy/Util/SortExternal.c
index 3aa3334..434c34d 100644
--- a/core/Lucy/Util/SortExternal.c
+++ b/core/Lucy/Util/SortExternal.c
@@ -89,8 +89,7 @@ SortEx_Feed_IMP(SortExternal *self, Obj *item) {
size_t amount = Memory_oversize(ivars->cache_max + 1, sizeof(Obj*));
SortEx_Grow_Cache(self, amount);
}
- Obj **elems = (Obj**)ivars->cache;
- elems[ivars->cache_max] = item;
+ ivars->cache[ivars->cache_max] = item;
ivars->cache_max++;
}
@@ -101,8 +100,7 @@ SI_peek(SortExternal *self, SortExternalIVARS *ivars) {
}
if (ivars->cache_max > 0) {
- Obj **elems = (Obj**)ivars->cache;
- return elems[ivars->cache_tick];
+ return ivars->cache[ivars->cache_tick];
}
else {
return NULL;
@@ -159,8 +157,7 @@ SortEx_Add_Run_IMP(SortExternal *self, SortExternal *run) {
= (uint32_t*)REALLOCATE(ivars->slice_sizes,
num_runs * sizeof(uint32_t));
ivars->slice_starts
- = (Obj**)REALLOCATE(ivars->slice_starts,
- num_runs * sizeof(Obj*));
+ = (Obj***)REALLOCATE(ivars->slice_starts, num_runs * sizeof(Obj**));
}
static void
@@ -203,7 +200,7 @@ S_find_endpost(SortExternal *self, SortExternalIVARS *ivars) {
else {
// Cache item with the highest sort value currently held in memory
// by the run.
- Obj **candidate = (Obj**)run_ivars->cache + tick;
+ Obj **candidate = run_ivars->cache + tick;
// If it's the first run, item is automatically the new endpost.
if (i == 0) {
@@ -223,7 +220,7 @@ static void
S_absorb_slices(SortExternal *self, SortExternalIVARS *ivars,
Obj **endpost) {
uint32_t num_runs = VA_Get_Size(ivars->runs);
- Obj **slice_starts = ivars->slice_starts;
+ Obj ***slice_starts = ivars->slice_starts;
uint32_t *slice_sizes = ivars->slice_sizes;
VTable *vtable = SortEx_Get_VTable(self);
CFISH_Sort_Compare_t compare
@@ -244,8 +241,8 @@ S_absorb_slices(SortExternal *self, SortExternalIVARS *ivars,
sizeof(Obj*));
SortEx_Grow_Cache(self, cap);
}
- memcpy(ivars->cache + ivars->cache_max * sizeof(Obj*),
- run_ivars->cache + run_ivars->cache_tick * sizeof(Obj*),
+ memcpy(ivars->cache + ivars->cache_max,
+ run_ivars->cache + run_ivars->cache_tick,
slice_size * sizeof(Obj*));
run_ivars->cache_tick += slice_size;
ivars->cache_max += slice_size;
@@ -258,7 +255,7 @@ S_absorb_slices(SortExternal *self, SortExternalIVARS *ivars,
// Transform slice starts from ticks to pointers.
uint32_t total = 0;
for (uint32_t i = 0; i < ivars->num_slices; i++) {
- slice_starts[i] = (Obj*)(ivars->cache + total * sizeof(Obj*));
+ slice_starts[i] = ivars->cache + total;
total += slice_sizes[i];
}
@@ -307,7 +304,7 @@ void
SortEx_Grow_Cache_IMP(SortExternal *self, uint32_t size) {
SortExternalIVARS *const ivars = SortEx_IVARS(self);
if (size > ivars->cache_cap) {
- ivars->cache = (uint8_t*)REALLOCATE(ivars->cache, size * sizeof(Obj*));
+ ivars->cache = (Obj**)REALLOCATE(ivars->cache, size * sizeof(Obj*));
ivars->cache_cap = size;
}
}
@@ -317,7 +314,7 @@ S_find_slice_size(SortExternal *self, SortExternalIVARS *ivars,
Obj **endpost) {
int32_t lo = ivars->cache_tick - 1;
int32_t hi = ivars->cache_max;
- Obj **cache = (Obj**)ivars->cache;
+ Obj **cache = ivars->cache;
SortEx_Compare_t compare
= METHOD_PTR(SortEx_Get_VTable(self), LUCY_SortEx_Compare);
http://git-wip-us.apache.org/repos/asf/lucy/blob/c09c1dca/core/Lucy/Util/SortExternal.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Util/SortExternal.cfh b/core/Lucy/Util/SortExternal.cfh
index b1af4ad..13d3009 100644
--- a/core/Lucy/Util/SortExternal.cfh
+++ b/core/Lucy/Util/SortExternal.cfh
@@ -49,7 +49,7 @@ __END_C__
abstract class Lucy::Util::SortExternal nickname SortEx
inherits Clownfish::Obj {
- uint8_t *cache;
+ Obj **cache;
uint32_t cache_cap;
uint32_t cache_max;
uint32_t cache_tick;
@@ -57,7 +57,7 @@ abstract class Lucy::Util::SortExternal nickname SortEx
uint32_t scratch_cap;
VArray *runs;
uint32_t num_slices;
- Obj **slice_starts;
+ Obj ***slice_starts;
uint32_t *slice_sizes;
uint32_t mem_thresh;
bool flipped;