Skip to content

Commit 9f2929a

Browse files
committed
bytes.replace: replacing bytes w/ diff len
fix bug on replacing bytes with different length
1 parent e4bded8 commit 9f2929a

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

tests/snippets/bytes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,9 @@
581581
assert b"123456789123".replace(b"23", b"XX", 0) == b"123456789123"
582582
assert b"123456789123".replace(b"23", b"XX", -1) == b"1XX4567891XX"
583583
assert b"123456789123".replace(b"23", b"") == b"14567891"
584+
assert b"123456789123".replace(b"23", b"X") == b"1X4567891X"
585+
assert b"rust python".replace(b" ", b"-") == b"rust--python"
586+
assert b"rust python".replace(b" ", b"-") == b"rust-python"
584587

585588
# title
586589
assert b"Hello world".title() == b"Hello World"

vm/src/obj/objbyteinner.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,8 +1013,8 @@ impl PyByteInner {
10131013
let mut done = 0;
10141014

10151015
let slice = &self.elements;
1016-
while index <= slice.len() - old.len() {
1017-
if done == count {
1016+
loop {
1017+
if done == count || index > slice.len() - old.len() {
10181018
res.extend_from_slice(&slice[index..]);
10191019
break;
10201020
}

0 commit comments

Comments
 (0)