Skip to content

Commit f6dfc95

Browse files
fangerertimfel
authored andcommitted
Workaround for FrameState merge error
1 parent 95d5362 commit f6dfc95

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyContextFunctions.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3345,15 +3345,23 @@ Object execute(Object[] arguments,
33453345
try {
33463346
GraalHPyContext context = asContextNode.execute(arguments[0]);
33473347
Object type = asType.execute(context, arguments[1]);
3348-
String name = getName.execute(type);
3348+
String baseName = getName.execute(type);
3349+
String name;
33493350
if (readHPyFlagsNode.execute(type, GraalHPyDef.TYPE_HPY_FLAGS) != PNone.NO_VALUE) {
33503351
// Types that originated from HPy: although they are ordinary managed
33513352
// PythonClasses, the name should have "cext semantics", i.e., contain the
33523353
// module if it was specified in the HPyType_Spec
33533354
Object moduleName = readModuleNameNode.execute(type, SpecialAttributeNames.__MODULE__);
33543355
if (moduleName instanceof String) {
3355-
name = moduleName + "." + name;
3356+
StringBuilder sb = PythonUtils.newStringBuilder((String) moduleName);
3357+
sb = PythonUtils.append(sb, '.');
3358+
sb = PythonUtils.append(sb, baseName);
3359+
name = PythonUtils.sbToString(sb);
3360+
} else {
3361+
name = baseName;
33563362
}
3363+
} else {
3364+
name = baseName;
33573365
}
33583366
byte[] result = encodeNativeStringNode.execute(StandardCharsets.UTF_8, name, CodecsModuleBuiltins.STRICT);
33593367
return new CByteArrayWrapper(result);

0 commit comments

Comments
 (0)