some optimize

This commit is contained in:
blueloveTH 2023-02-20 06:09:42 +08:00
parent 3064aecde6
commit be4ce003a3
4 changed files with 6 additions and 6 deletions

View File

@ -282,7 +282,7 @@ PyVar VM::run_frame(Frame* frame){
const Str& source = it2->second;
CodeObject_ code = compile(source, name, EXEC_MODE);
PyVar _m = new_module(name);
_exec(code, _m, pkpy::make_shared<pkpy::NameDict>());
_exec(code, _m);
frame->push(_m);
_lazy_modules.erase(it2);
}

View File

@ -16,7 +16,7 @@ struct Frame {
const i64 id;
std::stack<std::pair<int, std::vector<PyVar>>> s_try_block;
inline pkpy::NameDict& f_locals() noexcept { return *_locals; }
inline pkpy::NameDict& f_locals() noexcept { return _locals != nullptr ? *_locals : _module->attr(); }
inline pkpy::NameDict& f_globals() noexcept { return _module->attr(); }
inline PyVar* f_closure_try_get(const Str& name) noexcept {
@ -25,7 +25,7 @@ struct Frame {
}
Frame(const CodeObject_ co, PyVar _module,
pkpy::shared_ptr<pkpy::NameDict> _locals, pkpy::shared_ptr<pkpy::NameDict> _closure=nullptr)
pkpy::shared_ptr<pkpy::NameDict> _locals=nullptr, pkpy::shared_ptr<pkpy::NameDict> _closure=nullptr)
: co(co), _module(_module), _locals(_locals), _closure(_closure), id(kFrameGlobalId++) { }
inline const Bytecode& next_bytecode() {

View File

@ -768,7 +768,7 @@ void add_module_random(VM* vm){
});
CodeObject_ code = vm->compile(kRandomCode, "random.py", EXEC_MODE);
vm->_exec(code, mod, pkpy::make_shared<pkpy::NameDict>());
vm->_exec(code, mod);
}
@ -889,7 +889,7 @@ extern "C" {
add_module_os(vm);
CodeObject_ code = vm->compile(kBuiltinsCode, "<builtins>", EXEC_MODE);
vm->_exec(code, vm->builtins, pkpy::make_shared<pkpy::NameDict>());
vm->_exec(code, vm->builtins);
return vm;
}

View File

@ -216,7 +216,7 @@ public:
if(_module == nullptr) _module = _main;
try {
CodeObject_ code = compile(source, filename, mode);
return _exec(code, _module, pkpy::make_shared<pkpy::NameDict>());
return _exec(code, _module);
}catch (const pkpy::Exception& e){
*_stderr << e.summary() << '\n';
}