Skip to content

Commit 713a6f4

Browse files
committed
Avoid isAssignableFrom
1 parent cee5291 commit 713a6f4

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BuiltinConstructors.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@
146146
import com.oracle.graal.python.builtins.objects.memoryview.PMemoryView;
147147
import com.oracle.graal.python.builtins.objects.module.PythonModule;
148148
import com.oracle.graal.python.builtins.objects.object.ObjectBuiltins;
149+
import com.oracle.graal.python.builtins.objects.object.ObjectBuiltinsFactory;
149150
import com.oracle.graal.python.builtins.objects.object.PythonObject;
150151
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
151152
import com.oracle.graal.python.builtins.objects.range.PBigRange;
@@ -1772,10 +1773,10 @@ private void checkExcessArgs(Object type, Object[] varargs, PKeyword[] kwargs) {
17721773
CompilerDirectives.transferToInterpreterAndInvalidate();
17731774
profileInit = ValueProfile.createIdentityProfile();
17741775
}
1775-
if (ObjectBuiltins.InitNode.overridesBuiltinMethod(type, profileNew, lookupNew, ObjectNode.class)) {
1776+
if (ObjectBuiltins.InitNode.overridesBuiltinMethod(type, profileNew, lookupNew, BuiltinConstructorsFactory.ObjectNodeFactory.class)) {
17761777
throw raise(TypeError, ErrorMessages.NEW_TAKES_ONE_ARG);
17771778
}
1778-
if (!ObjectBuiltins.InitNode.overridesBuiltinMethod(type, profileInit, lookupInit, ObjectBuiltins.InitNode.class)) {
1779+
if (!ObjectBuiltins.InitNode.overridesBuiltinMethod(type, profileInit, lookupInit, ObjectBuiltinsFactory.InitNodeFactory.class)) {
17791780
throw raise(TypeError, ErrorMessages.NEW_TAKES_NO_ARGS, type);
17801781
}
17811782
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/ObjectBuiltins.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
import com.oracle.graal.python.builtins.CoreFunctions;
5454
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
5555
import com.oracle.graal.python.builtins.PythonBuiltins;
56-
import com.oracle.graal.python.builtins.modules.BuiltinConstructors;
56+
import com.oracle.graal.python.builtins.modules.BuiltinConstructorsFactory;
5757
import com.oracle.graal.python.builtins.objects.PNone;
5858
import com.oracle.graal.python.builtins.objects.PNotImplemented;
5959
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
@@ -213,22 +213,23 @@ public PNone init(Object self, Object[] arguments, PKeyword[] keywords,
213213
@Cached("createIdentityProfile()") ValueProfile profileNew) {
214214
if (arguments.length != 0 || keywords.length != 0) {
215215
Object type = lib.getLazyPythonClass(self);
216-
if (overridesBuiltinMethod(type, profileInit, lookupInit, InitNode.class)) {
216+
if (overridesBuiltinMethod(type, profileInit, lookupInit, ObjectBuiltinsFactory.InitNodeFactory.class)) {
217217
throw raise(TypeError, ErrorMessages.INIT_TAKES_ONE_ARG_OBJECT);
218218
}
219219

220-
if (!overridesBuiltinMethod(type, profileInit, lookupNew, BuiltinConstructors.ObjectNode.class)) {
220+
if (!overridesBuiltinMethod(type, profileInit, lookupNew, BuiltinConstructorsFactory.ObjectNodeFactory.class)) {
221221
throw raise(TypeError, ErrorMessages.INIT_TAKES_ONE_ARG, type);
222222
}
223223
}
224224
return PNone.NONE;
225225
}
226226

227-
public static <T> boolean overridesBuiltinMethod(Object type, ValueProfile profile, LookupAttributeInMRONode lookup, Class<T> builtinNodeClass) {
227+
public static <T extends NodeFactory<? extends PythonBuiltinBaseNode>> boolean overridesBuiltinMethod(Object type, ValueProfile profile, LookupAttributeInMRONode lookup,
228+
Class<T> builtinNodeFactoryClass) {
228229
Object method = profile.profile(lookup.execute(type));
229230
if (method instanceof PBuiltinFunction) {
230231
NodeFactory<? extends PythonBuiltinBaseNode> factory = ((PBuiltinFunction) method).getBuiltinNodeFactory();
231-
return factory == null || !builtinNodeClass.isAssignableFrom(factory.getNodeClass());
232+
return !builtinNodeFactoryClass.isInstance(factory);
232233
}
233234
return true;
234235
}

0 commit comments

Comments
 (0)