Skip to content

Commit 8106ccd

Browse files
committed
BytesBuiltins: fix __MUL__ and __RMUL__ builtins
1 parent 85dfe58 commit 8106ccd

File tree

1 file changed

+16
-5
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes

1 file changed

+16
-5
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/BytesBuiltins.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -431,14 +431,25 @@ public Object mul(VirtualFrame frame, PBytes self, Object times,
431431
@Cached("createBinaryProfile()") ConditionProfile hasFrame,
432432
@Cached("create()") SequenceStorageNodes.RepeatNode repeatNode,
433433
@CachedLibrary("times") PythonObjectLibrary lib) {
434-
int timesInt;
434+
SequenceStorage res = repeatNode.execute(frame, self.getSequenceStorage(), getTimesInt(frame, times, hasFrame, lib));
435+
return factory().createBytes(res);
436+
}
437+
438+
@Specialization(limit = "getCallSiteInlineCacheMaxDepth()")
439+
public Object mul(VirtualFrame frame, PByteArray self, Object times,
440+
@Cached("createBinaryProfile()") ConditionProfile hasFrame,
441+
@Cached("create()") SequenceStorageNodes.RepeatNode repeatNode,
442+
@CachedLibrary("times") PythonObjectLibrary lib) {
443+
SequenceStorage res = repeatNode.execute(frame, self.getSequenceStorage(), getTimesInt(frame, times, hasFrame, lib));
444+
return factory().createByteArray(res);
445+
}
446+
447+
private int getTimesInt(VirtualFrame frame, Object times, ConditionProfile hasFrame, PythonObjectLibrary lib) {
435448
if (hasFrame.profile(frame != null)) {
436-
timesInt = lib.asSizeWithState(times, PArguments.getThreadState(frame));
449+
return lib.asSizeWithState(times, PArguments.getThreadState(frame));
437450
} else {
438-
timesInt = lib.asSize(times);
451+
return lib.asSize(times);
439452
}
440-
SequenceStorage res = repeatNode.execute(frame, self.getSequenceStorage(), timesInt);
441-
return factory().createBytes(res);
442453
}
443454

444455
@SuppressWarnings("unused")

0 commit comments

Comments
 (0)