mirror of https://github.com/rusefi/lua.git
added patch for bug 5.3.4-7
This commit is contained in:
parent
505fc91222
commit
c5dc521d65
42
bugs
42
bugs
|
@ -3680,9 +3680,9 @@ It needs an "interceptor" 'memcmp' function that continues
|
||||||
reading memory after a difference is found.]],
|
reading memory after a difference is found.]],
|
||||||
patch = [[
|
patch = [[
|
||||||
2c2
|
2c2
|
||||||
< ** $Id: bugs,v 1.159 2017/12/13 18:35:03 roberto Exp roberto $
|
< ** $Id: bugs,v 1.160 2018/05/24 20:25:14 roberto Exp roberto $
|
||||||
---
|
---
|
||||||
> ** $Id: bugs,v 1.159 2017/12/13 18:35:03 roberto Exp roberto $
|
> ** $Id: bugs,v 1.160 2018/05/24 20:25:14 roberto Exp roberto $
|
||||||
263c263,264
|
263c263,264
|
||||||
< for (option = LUA_STRFTIMEOPTIONS; *option != '\0'; option += oplen) {
|
< for (option = LUA_STRFTIMEOPTIONS; *option != '\0'; option += oplen) {
|
||||||
---
|
---
|
||||||
|
@ -3974,6 +3974,44 @@ pcall(rawset, a, 2, 20) -- forces a rehash
|
||||||
for k,v in pairs(a) do print(k,v) end
|
for k,v in pairs(a) do print(k,v) end
|
||||||
]],
|
]],
|
||||||
patch = [[
|
patch = [[
|
||||||
|
--- ltable.c 2018/05/24 19:39:05 2.118.1.3
|
||||||
|
+++ ltable.c 2018/06/04 16:00:25
|
||||||
|
@@ -332,17 +332,34 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+typedef struct {
|
||||||
|
+ Table *t;
|
||||||
|
+ unsigned int nhsize;
|
||||||
|
+} AuxsetnodeT;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+static void auxsetnode (lua_State *L, void *ud) {
|
||||||
|
+ AuxsetnodeT *asn = cast(AuxsetnodeT *, ud);
|
||||||
|
+ setnodevector(L, asn->t, asn->nhsize);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
void luaH_resize (lua_State *L, Table *t, unsigned int nasize,
|
||||||
|
unsigned int nhsize) {
|
||||||
|
unsigned int i;
|
||||||
|
int j;
|
||||||
|
+ AuxsetnodeT asn;
|
||||||
|
unsigned int oldasize = t->sizearray;
|
||||||
|
int oldhsize = allocsizenode(t);
|
||||||
|
Node *nold = t->node; /* save old hash ... */
|
||||||
|
if (nasize > oldasize) /* array part must grow? */
|
||||||
|
setarrayvector(L, t, nasize);
|
||||||
|
/* create new hash part with appropriate size */
|
||||||
|
- setnodevector(L, t, nhsize);
|
||||||
|
+ asn.t = t; asn.nhsize = nhsize;
|
||||||
|
+ if (luaD_rawrunprotected(L, auxsetnode, &asn) != LUA_OK) { /* mem. error? */
|
||||||
|
+ setarrayvector(L, t, oldasize); /* array back to its original size */
|
||||||
|
+ luaD_throw(L, LUA_ERRMEM); /* rethrow memory error */
|
||||||
|
+ }
|
||||||
|
if (nasize < oldasize) { /* array part must shrink? */
|
||||||
|
t->sizearray = nasize;
|
||||||
|
/* re-insert elements from vanishing slice */
|
||||||
]]
|
]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue