mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 19:40:18 +00:00
...
This commit is contained in:
parent
7a386fa218
commit
6f04a519d6
@ -3,7 +3,7 @@ output: .retype
|
|||||||
url: https://pocketpy.dev
|
url: https://pocketpy.dev
|
||||||
branding:
|
branding:
|
||||||
title: pocketpy
|
title: pocketpy
|
||||||
label: v1.3.7
|
label: v1.3.8
|
||||||
logo: "./static/logo.png"
|
logo: "./static/logo.png"
|
||||||
favicon: "./static/logo.png"
|
favicon: "./static/logo.png"
|
||||||
meta:
|
meta:
|
||||||
|
14
src/vm.cpp
14
src/vm.cpp
@ -1032,15 +1032,16 @@ PyObject* VM::getattr(PyObject* obj, StrName name, bool throw_err){
|
|||||||
PyObject* val;
|
PyObject* val;
|
||||||
if(obj->type == tp_type){
|
if(obj->type == tp_type){
|
||||||
val = find_name_in_mro(obj, name);
|
val = find_name_in_mro(obj, name);
|
||||||
}else{
|
|
||||||
val = obj->attr().try_get_likely_found(name);
|
|
||||||
}
|
|
||||||
if(val != nullptr){
|
if(val != nullptr){
|
||||||
if(is_tagged(val)) return val;
|
if(is_tagged(val)) return val;
|
||||||
if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func;
|
if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func;
|
||||||
if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func));
|
if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func));
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
val = obj->attr().try_get_likely_found(name);
|
||||||
|
if(val != nullptr) return val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(cls_var != nullptr){
|
if(cls_var != nullptr){
|
||||||
// bound method is non-data descriptor
|
// bound method is non-data descriptor
|
||||||
@ -1101,15 +1102,16 @@ PyObject* VM::get_unbound_method(PyObject* obj, StrName name, PyObject** self, b
|
|||||||
PyObject* val;
|
PyObject* val;
|
||||||
if(obj->type == tp_type){
|
if(obj->type == tp_type){
|
||||||
val = find_name_in_mro(obj, name);
|
val = find_name_in_mro(obj, name);
|
||||||
}else{
|
|
||||||
val = obj->attr().try_get_likely_found(name);
|
|
||||||
}
|
|
||||||
if(val != nullptr){
|
if(val != nullptr){
|
||||||
if(is_tagged(val)) return val;
|
if(is_tagged(val)) return val;
|
||||||
if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func;
|
if(val->type == tp_staticmethod) return PK_OBJ_GET(StaticMethod, val).func;
|
||||||
if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func));
|
if(val->type == tp_classmethod) return VAR(BoundMethod(obj, PK_OBJ_GET(ClassMethod, val).func));
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
val = obj->attr().try_get_likely_found(name);
|
||||||
|
if(val != nullptr) return val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user