This commit is contained in:
blueloveTH 2023-09-28 21:44:34 +08:00
parent 366ff866d4
commit e1b2bda6aa
2 changed files with 5 additions and 9 deletions

View File

@ -88,7 +88,7 @@ PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i);
+ `bool pkpy_getattr(pkpy_vm*, pkpy_CName name)`
Push `b.<name>` onto the stack.
Push `b.<name>` onto the stack. Return false if the attribute is not found.
```
[b] -> [b.<name>]
@ -105,7 +105,7 @@ PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i);
+ `bool pkpy_getglobal(pkpy_vm*, pkpy_CName name)`
Push a global variable onto the stack.
Push a global/builtin variable onto the stack. Return false if the variable is not found.
```
[] -> [value]

View File

@ -384,9 +384,8 @@ bool pkpy_getattr(pkpy_vm* vm_handle, pkpy_CName name) {
PK_ASSERT_NO_ERROR()
PK_ASSERT_N_EXTRA_ELEMENTS(1)
PyObject* o = vm->s_data.top();
PK_PROTECTED(
o = vm->getattr(o, StrName(name));
)
o = vm->getattr(o, StrName(name), false);
if(o == nullptr) return false;
vm->s_data.top() = o;
return true;
}
@ -411,10 +410,7 @@ bool pkpy_getglobal(pkpy_vm* vm_handle, pkpy_CName name) {
PyObject* o = vm->_main->attr().try_get(StrName(name));
if (o == nullptr) {
o = vm->builtins->attr().try_get(StrName(name));
if (o == nullptr){
pkpy_error(vm_handle, "NameError", pkpy_name_to_string(name));
return false;
}
if (o == nullptr) return false;
}
vm->s_data.push(o);
return true;