diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2011-11-28 15:25:48 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2011-11-28 15:25:48 -0200 |
commit | 217b65e6d941f7ae1a615b2749d1b1d94d6da827 (patch) | |
tree | d128606b3eb801e21f5b6d78c1b00745b0b2b2da | |
parent | 8119374e7458073372408ccb8929ffb96537e411 (diff) | |
download | lua-217b65e6d941f7ae1a615b2749d1b1d94d6da827.tar.gz lua-217b65e6d941f7ae1a615b2749d1b1d94d6da827.tar.bz2 lua-217b65e6d941f7ae1a615b2749d1b1d94d6da827.zip |
avoid some warnings about converting 32-bit shifts into 64-bit results
-rw-r--r-- | lgc.c | 18 | ||||
-rw-r--r-- | ltable.c | 6 |
2 files changed, 15 insertions, 9 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 2.113 2011/10/03 16:22:05 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 2.114 2011/10/03 17:54:25 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -94,6 +94,12 @@ static void reallymarkobject (global_State *g, GCObject *o); | |||
94 | 94 | ||
95 | 95 | ||
96 | /* | 96 | /* |
97 | ** one after last element in a hash array | ||
98 | */ | ||
99 | #define gnodelast(h) gnode(h, cast(size_t, sizenode(h))) | ||
100 | |||
101 | |||
102 | /* | ||
97 | ** link table 'h' into list pointed by 'p' | 103 | ** link table 'h' into list pointed by 'p' |
98 | */ | 104 | */ |
99 | #define linktable(h,p) ((h)->gclist = *(p), *(p) = obj2gco(h)) | 105 | #define linktable(h,p) ((h)->gclist = *(p), *(p) = obj2gco(h)) |
@@ -342,7 +348,7 @@ static void markroot (global_State *g) { | |||
342 | */ | 348 | */ |
343 | 349 | ||
344 | static void traverseweakvalue (global_State *g, Table *h) { | 350 | static void traverseweakvalue (global_State *g, Table *h) { |
345 | Node *n, *limit = gnode(h, sizenode(h)); | 351 | Node *n, *limit = gnodelast(h); |
346 | /* if there is array part, assume it may have white values (do not | 352 | /* if there is array part, assume it may have white values (do not |
347 | traverse it just to check) */ | 353 | traverse it just to check) */ |
348 | int hasclears = (h->sizearray > 0); | 354 | int hasclears = (h->sizearray > 0); |
@@ -368,7 +374,7 @@ static int traverseephemeron (global_State *g, Table *h) { | |||
368 | int marked = 0; /* true if an object is marked in this traversal */ | 374 | int marked = 0; /* true if an object is marked in this traversal */ |
369 | int hasclears = 0; /* true if table has white keys */ | 375 | int hasclears = 0; /* true if table has white keys */ |
370 | int prop = 0; /* true if table has entry "white-key -> white-value" */ | 376 | int prop = 0; /* true if table has entry "white-key -> white-value" */ |
371 | Node *n, *limit = gnode(h, sizenode(h)); | 377 | Node *n, *limit = gnodelast(h); |
372 | int i; | 378 | int i; |
373 | /* traverse array part (numeric keys are 'strong') */ | 379 | /* traverse array part (numeric keys are 'strong') */ |
374 | for (i = 0; i < h->sizearray; i++) { | 380 | for (i = 0; i < h->sizearray; i++) { |
@@ -403,7 +409,7 @@ static int traverseephemeron (global_State *g, Table *h) { | |||
403 | 409 | ||
404 | 410 | ||
405 | static void traversestrongtable (global_State *g, Table *h) { | 411 | static void traversestrongtable (global_State *g, Table *h) { |
406 | Node *n, *limit = gnode(h, sizenode(h)); | 412 | Node *n, *limit = gnodelast(h); |
407 | int i; | 413 | int i; |
408 | for (i = 0; i < h->sizearray; i++) /* traverse array part */ | 414 | for (i = 0; i < h->sizearray; i++) /* traverse array part */ |
409 | markvalue(g, &h->array[i]); | 415 | markvalue(g, &h->array[i]); |
@@ -596,7 +602,7 @@ static void convergeephemerons (global_State *g) { | |||
596 | static void clearkeys (GCObject *l, GCObject *f) { | 602 | static void clearkeys (GCObject *l, GCObject *f) { |
597 | for (; l != f; l = gco2t(l)->gclist) { | 603 | for (; l != f; l = gco2t(l)->gclist) { |
598 | Table *h = gco2t(l); | 604 | Table *h = gco2t(l); |
599 | Node *n, *limit = gnode(h, sizenode(h)); | 605 | Node *n, *limit = gnodelast(h); |
600 | for (n = gnode(h, 0); n < limit; n++) { | 606 | for (n = gnode(h, 0); n < limit; n++) { |
601 | if (!ttisnil(gval(n)) && (iscleared(gkey(n)))) { | 607 | if (!ttisnil(gval(n)) && (iscleared(gkey(n)))) { |
602 | setnilvalue(gval(n)); /* remove value ... */ | 608 | setnilvalue(gval(n)); /* remove value ... */ |
@@ -614,7 +620,7 @@ static void clearkeys (GCObject *l, GCObject *f) { | |||
614 | static void clearvalues (GCObject *l, GCObject *f) { | 620 | static void clearvalues (GCObject *l, GCObject *f) { |
615 | for (; l != f; l = gco2t(l)->gclist) { | 621 | for (; l != f; l = gco2t(l)->gclist) { |
616 | Table *h = gco2t(l); | 622 | Table *h = gco2t(l); |
617 | Node *n, *limit = gnode(h, sizenode(h)); | 623 | Node *n, *limit = gnodelast(h); |
618 | int i; | 624 | int i; |
619 | for (i = 0; i < h->sizearray; i++) { | 625 | for (i = 0; i < h->sizearray; i++) { |
620 | TValue *o = &h->array[i]; | 626 | TValue *o = &h->array[i]; |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltable.c,v 2.64 2011/09/24 21:12:01 roberto Exp roberto $ | 2 | ** $Id: ltable.c,v 2.65 2011/09/30 12:45:27 roberto Exp roberto $ |
3 | ** Lua tables (hash) | 3 | ** Lua tables (hash) |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -322,7 +322,7 @@ void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) { | |||
322 | } | 322 | } |
323 | } | 323 | } |
324 | if (!isdummy(nold)) | 324 | if (!isdummy(nold)) |
325 | luaM_freearray(L, nold, twoto(oldhsize)); /* free old array */ | 325 | luaM_freearray(L, nold, cast(size_t, twoto(oldhsize))); /* free old array */ |
326 | } | 326 | } |
327 | 327 | ||
328 | 328 | ||
@@ -370,7 +370,7 @@ Table *luaH_new (lua_State *L) { | |||
370 | 370 | ||
371 | void luaH_free (lua_State *L, Table *t) { | 371 | void luaH_free (lua_State *L, Table *t) { |
372 | if (!isdummy(t->node)) | 372 | if (!isdummy(t->node)) |
373 | luaM_freearray(L, t->node, sizenode(t)); | 373 | luaM_freearray(L, t->node, cast(size_t, sizenode(t))); |
374 | luaM_freearray(L, t->array, t->sizearray); | 374 | luaM_freearray(L, t->array, t->sizearray); |
375 | luaM_free(L, t); | 375 | luaM_free(L, t); |
376 | } | 376 | } |