mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
some optimize
This commit is contained in:
parent
3064aecde6
commit
be4ce003a3
@ -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);
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
2
src/vm.h
2
src/vm.h
@ -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';
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user