blueloveTH 2 лет назад
Родитель
Сommit
094fac8f72
2 измененных файлов с 2 добавлено и 3 удалено
  1. 0 1
      src/ceval.cpp
  2. 2 2
      src/vm.cpp

+ 0 - 1
src/ceval.cpp

@@ -147,7 +147,6 @@ __NEXT_STEP:;
         PUSH(_0);
     } DISPATCH();
     TARGET(LOAD_NAME) {
-        if(heap._should_auto_collect()) heap._auto_collect();
         StrName _name(byte.arg);
         PyObject** slot = frame->_locals.try_get_name(_name);
         if(slot != nullptr) {

+ 2 - 2
src/vm.cpp

@@ -1196,11 +1196,11 @@ void ManagedHeap::mark() {
     for(PyObject* obj: _no_gc) PK_OBJ_MARK(obj);
     for(auto& frame : vm->callstack.data()) frame._gc_mark();
     for(PyObject* obj: vm->s_data) PK_OBJ_MARK(obj);
-    if(_gc_marker_ex) _gc_marker_ex(vm);
+    for(auto [_, co]: vm->_cached_codes) co->_gc_mark();
     if(vm->_last_exception) PK_OBJ_MARK(vm->_last_exception);
     if(vm->_curr_class) PK_OBJ_MARK(vm->_curr_class);
     if(vm->_c.error != nullptr) PK_OBJ_MARK(vm->_c.error);
-    for(auto [_, co]: vm->_cached_codes) co->_gc_mark();
+    if(_gc_marker_ex) _gc_marker_ex(vm);
 }
 
 StrName obj_type_name(VM *vm, Type type){