|
72 | 72 | import com.oracle.graal.python.builtins.objects.ints.PInt;
|
73 | 73 | import com.oracle.graal.python.builtins.objects.module.PythonModule;
|
74 | 74 | import com.oracle.graal.python.builtins.objects.object.PythonObject;
|
| 75 | +import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary; |
75 | 76 | import com.oracle.graal.python.builtins.objects.str.PString;
|
76 | 77 | import com.oracle.graal.python.nodes.ErrorMessages;
|
77 | 78 | import com.oracle.graal.python.nodes.SpecialMethodNames;
|
@@ -503,19 +504,23 @@ public int run(@SuppressWarnings("unused") Object noName) {
|
503 | 504 | @Builtin(name = "create_builtin", minNumOfPositionalArgs = 1)
|
504 | 505 | @GenerateNodeFactory
|
505 | 506 | public abstract static class CreateBuiltin extends PythonBuiltinNode {
|
506 |
| - @SuppressWarnings("unused") |
507 |
| - @Specialization |
508 |
| - @TruffleBoundary |
509 |
| - public Object run(PythonObject moduleSpec, |
510 |
| - @Cached CastToJavaStringNode toJavaStringNode) { |
511 |
| - Object name = moduleSpec.getAttribute("name"); |
512 |
| - PythonModule builtinModule = getCore().lookupBuiltinModule(toJavaStringNode.execute(name)); |
| 507 | + @Specialization(limit = "getCallSiteInlineCacheMaxDepth()") |
| 508 | + public Object run(VirtualFrame frame, PythonObject moduleSpec, |
| 509 | + @Cached CastToJavaStringNode toJavaStringNode, |
| 510 | + @CachedLibrary(value = "moduleSpec") PythonObjectLibrary pol) { |
| 511 | + Object name = pol.lookupAttribute(moduleSpec, frame, "name"); |
| 512 | + PythonModule builtinModule = getBuiltinModule(toJavaStringNode.execute(name)); |
513 | 513 | if (builtinModule != null) {
|
514 | 514 | // TODO: builtin modules cannot be re-initialized (see is_builtin)
|
515 | 515 | return builtinModule;
|
516 | 516 | }
|
517 | 517 | throw raise(NotImplementedError, "_imp.create_builtin");
|
518 | 518 | }
|
| 519 | + |
| 520 | + @TruffleBoundary |
| 521 | + private PythonModule getBuiltinModule(String name) { |
| 522 | + return getCore().lookupBuiltinModule(name); |
| 523 | + } |
519 | 524 | }
|
520 | 525 |
|
521 | 526 | @Builtin(name = "source_hash", minNumOfPositionalArgs = 2)
|
|
0 commit comments