aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-01-21 19:42:51 +0100
committerMike Pall <mike>2010-01-21 19:42:51 +0100
commitc56811bb7acf40174ac9b63e69f58b42adf85bd7 (patch)
tree76fff30891b9894f80a64f3d22b85e7278c2a7a6 /src
parent419cbb3aa95efa37b307568d06c0e0bf739c8c38 (diff)
downloadluajit-c56811bb7acf40174ac9b63e69f58b42adf85bd7.tar.gz
luajit-c56811bb7acf40174ac9b63e69f58b42adf85bd7.tar.bz2
luajit-c56811bb7acf40174ac9b63e69f58b42adf85bd7.zip
Fix undefined behavior in table resizing calculation.
Diffstat (limited to 'src')
-rw-r--r--src/lj_tab.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_tab.c b/src/lj_tab.c
index afbdc8aa..43737aa9 100644
--- a/src/lj_tab.c
+++ b/src/lj_tab.c
@@ -357,7 +357,8 @@ static void rehashtab(lua_State *L, GCtab *t, cTValue *ek)
357 uint32_t total, asize, na, i; 357 uint32_t total, asize, na, i;
358 for (i = 0; i < LJ_MAX_ABITS; i++) bins[i] = 0; 358 for (i = 0; i < LJ_MAX_ABITS; i++) bins[i] = 0;
359 asize = countarray(t, bins); 359 asize = countarray(t, bins);
360 total = 1 + asize + counthash(t, bins, &asize); 360 total = 1 + asize;
361 total += counthash(t, bins, &asize);
361 asize += countint(ek, bins); 362 asize += countint(ek, bins);
362 na = bestasize(bins, &asize); 363 na = bestasize(bins, &asize);
363 total -= na; 364 total -= na;