Skip to content

Commit b408c53

Browse files
committed
_imp.create_builtin: fix support for the case where the module is already a builtin module. Modules cannot be reinitialized
1 parent 4d4df5e commit b408c53

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -497,15 +497,13 @@ public abstract static class CreateBuiltin extends PythonBuiltinNode {
497497
@SuppressWarnings("unused")
498498
@Specialization
499499
@TruffleBoundary
500-
public Object run(PythonObject moduleSpec) {
501-
Object origin = moduleSpec.getAttribute("origin");
500+
public Object run(PythonObject moduleSpec,
501+
@Cached CastToJavaStringNode toJavaStringNode) {
502502
Object name = moduleSpec.getAttribute("name");
503-
if ("built-in".equals(origin)) {
504-
for (String bm : getCore().builtinModuleNames()) {
505-
if (bm.equals(name)) {
506-
return getCore().lookupBuiltinModule(bm);
507-
}
508-
}
503+
PythonModule builtinModule = getCore().lookupBuiltinModule(toJavaStringNode.execute(name));
504+
if (builtinModule != null) {
505+
// TODO: builtin modules cannot be re-initialized (see is_builtin)
506+
return builtinModule;
509507
}
510508
throw raise(NotImplementedError, "_imp.create_builtin");
511509
}

0 commit comments

Comments
 (0)