summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gc.c b/src/gc.c
index 81b234d6f..4db640ff4 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -515,10 +515,10 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
{
struct REnv *e = (struct REnv*)obj;
- if (e->cioff < 0) {
+ if (!MRB_ENV_STACK_SHARED_P(e)) {
int i, len;
- len = (int)e->flags;
+ len = (int)MRB_ENV_STACK_LEN(e);
for (i=0; i<len; i++) {
mrb_gc_mark_value(mrb, e->stack[i]);
}
@@ -612,7 +612,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
{
struct REnv *e = (struct REnv*)obj;
- if (e->cioff < 0) {
+ if (!MRB_ENV_STACK_SHARED_P(e)) {
mrb_free(mrb, e->stack);
e->stack = NULL;
}