eris: table nodes now have room to store sequence number
This commit is contained in:
@@ -383,9 +383,9 @@ static int traverseephemeron (global_State *g, Table *h) {
|
||||
int i;
|
||||
/* traverse array part (numeric keys are 'strong') */
|
||||
for (i = 0; i < h->sizearray; i++) {
|
||||
if (valiswhite(&h->array[i])) {
|
||||
if (valiswhite(&h->array[i].i_val)) {
|
||||
marked = 1;
|
||||
reallymarkobject(g, gcvalue(&h->array[i]));
|
||||
reallymarkobject(g, gcvalue(&h->array[i].i_val));
|
||||
}
|
||||
}
|
||||
/* traverse hash part */
|
||||
@@ -417,7 +417,7 @@ static void traversestrongtable (global_State *g, Table *h) {
|
||||
Node *n, *limit = gnodelast(h);
|
||||
int i;
|
||||
for (i = 0; i < h->sizearray; i++) /* traverse array part */
|
||||
markvalue(g, &h->array[i]);
|
||||
markvalue(g, &h->array[i].i_val);
|
||||
for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */
|
||||
checkdeadkey(n);
|
||||
if (ttisnil(gval(n))) /* entry is empty? */
|
||||
@@ -646,7 +646,7 @@ static void clearvalues (global_State *g, GCObject *l, GCObject *f) {
|
||||
Node *n, *limit = gnodelast(h);
|
||||
int i;
|
||||
for (i = 0; i < h->sizearray; i++) {
|
||||
TValue *o = &h->array[i];
|
||||
TValue *o = &h->array[i].i_val;
|
||||
if (iscleared(g, o)) /* value was collected? */
|
||||
setnilvalue(o); /* remove value */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user