diff --git a/src/interpreter/vmx.c b/src/interpreter/vmx.c index abb00a2b..5162165d 100644 --- a/src/interpreter/vmx.c +++ b/src/interpreter/vmx.c @@ -3,7 +3,7 @@ void pk_print_stack(VM* self, py_Frame* frame, Bytecode byte) { return; - if(frame == NULL || py_isnil(self->main)) return; + if(frame == NULL || !self->main || py_isnil(self->main)) return; py_TValue* sp = self->stack.sp; c11_sbuf buf; diff --git a/tests/71_gc_bug.py b/tests/71_gc_bug.py index d7656516..a5c244e2 100644 --- a/tests/71_gc_bug.py +++ b/tests/71_gc_bug.py @@ -16,7 +16,6 @@ d.__path__ = '__main__' d.a = [] d.gc = 1 -print('-' * 100) assert d.gc == 1 del d.a @@ -32,4 +31,16 @@ assert d.gc == 1 # 4 gc [4] # 5 nil # 6 __path__ [2] -# 7 a [3] \ No newline at end of file +# 7 a [3] + +import gc +gc.collect() + +a = [] +del a +assert gc.collect() == 1 + +# a = [] +# a.append(a) +# del a +# assert gc.collect() == 1