@@ -1010,7 +1010,7 @@ protected Object exec(Object type,
1010
1010
@ Cached CallBinaryMethodNode callGetAttr ,
1011
1011
@ Cached GetDictStorageNode getDictStorageNode ,
1012
1012
@ CachedLibrary (limit = "4" ) HashingStorageLibrary storageLibrary ,
1013
- @ CachedLibrary (limit = "4 " ) PythonObjectLibrary objectLibrary ) {
1013
+ @ CachedLibrary (limit = "6 " ) PythonObjectLibrary objectLibrary ) {
1014
1014
return solidBase (type , getBaseClassNode , context , lookupGetAttribute , callGetAttr , getDictStorageNode , storageLibrary , objectLibrary );
1015
1015
}
1016
1016
@@ -1034,8 +1034,8 @@ private Object solidBase(Object type, GetBaseClassNode getBaseClassNode, PythonC
1034
1034
1035
1035
private boolean extraivars (Object type , Object base , LookupSpecialMethodNode .Dynamic lookupGetAttribute , CallBinaryMethodNode callGetAttr ,
1036
1036
GetDictStorageNode getDictStorageNode , HashingStorageLibrary storageLibrary , PythonObjectLibrary objectLibrary ) {
1037
- Object typeSlots = getSlotsFromDict (type , lookupGetAttribute , callGetAttr , getDictStorageNode , storageLibrary );
1038
- Object baseSlots = getSlotsFromDict (base , lookupGetAttribute , callGetAttr , getDictStorageNode , storageLibrary );
1037
+ Object typeSlots = getSlotsFromDict (type , lookupGetAttribute , callGetAttr , getDictStorageNode , objectLibrary , storageLibrary );
1038
+ Object baseSlots = getSlotsFromDict (base , lookupGetAttribute , callGetAttr , getDictStorageNode , objectLibrary , storageLibrary );
1039
1039
1040
1040
if (typeSlots == null && baseSlots != null && objectLibrary .length (baseSlots ) != 0 ||
1041
1041
baseSlots == null && typeSlots != null && objectLibrary .length (typeSlots ) != 0 ) {
@@ -1051,8 +1051,8 @@ private boolean extraivars(Object type, Object base, LookupSpecialMethodNode.Dyn
1051
1051
}
1052
1052
1053
1053
protected Object getSlotsFromDict (Object type , LookupSpecialMethodNode .Dynamic lookupGetAttribute , CallBinaryMethodNode callGetAttr ,
1054
- GetDictStorageNode getDictStorageNode , HashingStorageLibrary lib ) {
1055
- Object getAttr = lookupGetAttribute .execute (type , __GETATTRIBUTE__ , type , false );
1054
+ GetDictStorageNode getDictStorageNode , PythonObjectLibrary objectLibrary , HashingStorageLibrary lib ) {
1055
+ Object getAttr = lookupGetAttribute .execute (objectLibrary . getLazyPythonClass ( type ) , __GETATTRIBUTE__ , type , false );
1056
1056
Object dict = callGetAttr .executeObject (getAttr , type , __DICT__ );
1057
1057
if (dict != PNone .NO_VALUE ) {
1058
1058
if (dict instanceof PMappingproxy ) {
0 commit comments