fix format.

This commit is contained in:
ykiko 2024-06-18 20:36:42 +08:00
parent cc4dd34c86
commit 71432a4054

View File

@ -528,24 +528,24 @@ PyVar VM::__py_exec_internal(const CodeObject_& code, PyVar globals, PyVar local
auto _lock = heap.gc_scope_lock(); // for safety auto _lock = heap.gc_scope_lock(); // for safety
PyObject* globals_obj = nullptr; PyVar globals_obj = nullptr;
Dict* globals_dict = nullptr; Dict* globals_dict = nullptr;
NameDict_ locals_closure = nullptr; NameDict_ locals_closure = nullptr;
Dict* locals_dict = nullptr; Dict* locals_dict = nullptr;
if(globals == vm->None) { if(globals == vm->None){
globals_obj = frame ? frame->_module : _main; globals_obj = frame ? frame->_module : _main;
} else { }else{
if(is_type(globals, VM::tp_mappingproxy)) { if(is_type(globals, VM::tp_mappingproxy)){
globals_obj = PK_OBJ_GET(MappingProxy, globals).obj; globals_obj = PK_OBJ_GET(MappingProxy, globals).obj;
} else { }else{
check_compatible_type(globals, VM::tp_dict); check_compatible_type(globals, VM::tp_dict);
// make a temporary object and copy globals into it // make a temporary object and copy globals into it
globals_obj = heap.gcnew<DummyInstance>(VM::tp_object); globals_obj = heap.gcnew<DummyInstance>(VM::tp_object);
globals_obj->_enable_instance_dict(); globals_obj->_enable_instance_dict();
globals_dict = &PK_OBJ_GET(Dict, globals); globals_dict = &PK_OBJ_GET(Dict, globals);
globals_dict->apply([&](PyVar k, PyVar v) { globals_dict->apply([&](PyVar k, PyVar v){
globals_obj->attr().set(CAST(Str&, k), v); globals_obj->attr().set(CAST(Str&, k), v);
}); });
} }
@ -553,29 +553,29 @@ PyVar VM::__py_exec_internal(const CodeObject_& code, PyVar globals, PyVar local
PyVar retval = nullptr; PyVar retval = nullptr;
if(locals == vm->None) { if(locals == vm->None){
retval = vm->_exec(code, globals_obj); // only globals retval = vm->_exec(code, globals_obj); // only globals
} else { }else{
check_compatible_type(locals, VM::tp_dict); check_compatible_type(locals, VM::tp_dict);
locals_dict = &PK_OBJ_GET(Dict, locals); locals_dict = &PK_OBJ_GET(Dict, locals);
locals_closure = std::make_shared<NameDict>(); locals_closure = std::make_shared<NameDict>();
locals_dict->apply([&](PyVar k, PyVar v) { locals_dict->apply([&](PyVar k, PyVar v){
locals_closure->set(CAST(Str&, k), v); locals_closure->set(CAST(Str&, k), v);
}); });
PyObject* _callable = VAR(Function(__dynamic_func_decl, globals_obj, nullptr, locals_closure)); PyVar _callable = VAR(Function(__dynamic_func_decl, globals_obj, nullptr, locals_closure));
retval = vm->_exec(code.get(), globals_obj, _callable, vm->s_data._sp); retval = vm->_exec(code.get(), globals_obj, _callable, vm->s_data._sp);
} }
if(globals_dict) { if(globals_dict){
globals_dict->clear(); globals_dict->clear();
globals_obj->attr().apply([&](StrName k, PyVar v) { globals_obj->attr().apply([&](StrName k, PyVar v){
globals_dict->set(VAR(k.sv()), v); globals_dict->set(VAR(k.sv()), v);
}); });
} }
if(locals_dict) { if(locals_dict){
locals_dict->clear(); locals_dict->clear();
locals_closure->apply([&](StrName k, PyVar v) { locals_closure->apply([&](StrName k, PyVar v){
locals_dict->set(VAR(k.sv()), v); locals_dict->set(VAR(k.sv()), v);
}); });
} }