Repository: lucy
Updated Branches:
  refs/heads/master 4677247ce -> ac91ea905


Refactor resizing of Inversion.


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/2fe08b36
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/2fe08b36
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/2fe08b36

Branch: refs/heads/master
Commit: 2fe08b3686270d2367871b9425039c7b07b51d46
Parents: 4677247
Author: Marvin Humphrey <mar...@rectangular.com>
Authored: Mon May 2 16:32:31 2016 -0700
Committer: Marvin Humphrey <mar...@rectangular.com>
Committed: Mon May 2 16:32:31 2016 -0700

----------------------------------------------------------------------
 core/Lucy/Analysis/Inversion.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/2fe08b36/core/Lucy/Analysis/Inversion.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Analysis/Inversion.c b/core/Lucy/Analysis/Inversion.c
index 18e5e23..32bb0b2 100644
--- a/core/Lucy/Analysis/Inversion.c
+++ b/core/Lucy/Analysis/Inversion.c
@@ -88,11 +88,13 @@ static void
 S_grow(Inversion *self, size_t size) {
     InversionIVARS *const ivars = Inversion_IVARS(self);
     if (size > ivars->cap) {
-        uint64_t amount = size * sizeof(Token*);
-        // Clip rather than wrap.
-        if (amount > SIZE_MAX || amount < size) { amount = SIZE_MAX; }
-        ivars->tokens = (Token**)REALLOCATE(ivars->tokens, (size_t)amount);
-        ivars->cap    = size;
+        if (size > SIZE_MAX / sizeof(Token*) || size > UINT32_MAX) {
+            THROW(ERR, "Can't grow Inversion to hold %u64 elements",
+                  (uint64_t)size);
+        }
+        size_t amount = size * sizeof(Token*);
+        ivars->tokens = (Token**)REALLOCATE(ivars->tokens, amount);
+        ivars->cap    = (uint32_t)size;
         memset(ivars->tokens + ivars->size, 0,
                (size - ivars->size) * sizeof(Token*));
     }

Reply via email to