Lines Matching refs:curr

829     GCObject *curr = *p;
830 int marked = curr->marked;
831 if (isdeadm(ow, marked)) { /* is 'curr' dead? */
832 *p = curr->next; /* remove 'curr' from list */
833 freeobj(L, curr); /* erase 'curr' */
836 curr->marked = cast_byte((marked & ~maskgcbits) | white);
837 p = &curr->next; /* go to next element */
973 GCObject *curr;
976 while ((curr = *p) != g->finobjold1) { /* traverse all finalizable objects */
977 lua_assert(tofinalize(curr));
978 if (!(iswhite(curr) || all)) /* not being collected? */
979 p = &curr->next; /* don't bother with it */
981 if (curr == g->finobjsur) /* removing 'finobjsur'? */
982 g->finobjsur = curr->next; /* correct it */
983 *p = curr->next; /* remove 'curr' from 'finobj' list */
984 curr->next = *lastnext; /* link at the end of 'tobefnz' list */
985 *lastnext = curr;
986 lastnext = &curr->next;
1078 GCObject *curr;
1080 while ((curr = *p) != NULL) {
1081 if (iswhite(curr)) { /* is 'curr' dead? */
1082 lua_assert(isdead(g, curr));
1083 *p = curr->next; /* remove 'curr' from list */
1084 freeobj(L, curr); /* erase 'curr' */
1087 setage(curr, G_OLD);
1088 if (curr->tt == LUA_VTHREAD) { /* threads must be watched */
1089 lua_State *th = gco2th(curr);
1092 else if (curr->tt == LUA_VUPVAL && upisopen(gco2upv(curr)))
1093 set2gray(curr); /* open upvalues are always gray */
1095 nw2black(curr);
1096 p = &curr->next; /* go to next element */
1125 GCObject *curr;
1126 while ((curr = *p) != limit) {
1127 if (iswhite(curr)) { /* is 'curr' dead? */
1128 lua_assert(!isold(curr) && isdead(g, curr));
1129 *p = curr->next; /* remove 'curr' from list */
1130 freeobj(L, curr); /* erase 'curr' */
1133 if (getage(curr) == G_NEW) { /* new objects go back to white */
1134 int marked = curr->marked & ~maskgcbits; /* erase GC bits */
1135 curr->marked = cast_byte(marked | G_SURVIVAL | white);
1138 setage(curr, nextage[getage(curr)]);
1139 if (getage(curr) == G_OLD1 && *pfirstold1 == NULL)
1140 *pfirstold1 = curr; /* first OLD1 object in the list */
1142 p = &curr->next; /* go to next element */
1171 GCObject *curr;
1172 while ((curr = *p) != NULL) {
1173 GCObject **next = getgclist(curr);
1174 if (iswhite(curr))
1176 else if (getage(curr) == G_TOUCHED1) { /* touched in this cycle? */
1177 lua_assert(isgray(curr));
1178 nw2black(curr); /* make it black, for next barrier */
1179 changeage(curr, G_TOUCHED1, G_TOUCHED2);
1182 else if (curr->tt == LUA_VTHREAD) {
1183 lua_assert(isgray(curr));
1187 lua_assert(isold(curr)); /* young objects should be white here */
1188 if (getage(curr) == G_TOUCHED2) /* advance from TOUCHED2... */
1189 changeage(curr, G_TOUCHED2, G_OLD); /* ... to OLD */
1190 nw2black(curr); /* make object black (to be removed) */