Resize pack_string with padding

This commit is contained in:
Aviv Palivoda committed 2020-03-14 16:25:02 +02:00
1 parent 7338bb701d
commit bbb799f2c7
2 files changed
+14 -2

No files matched your search

+9
View File
@@ -56,3 +56,12 @@ class Indexable(object):
data = struct.pack('B', Indexable(65))
assert data == bytes([65])
data = struct.pack('5s', b"test1")
assert data == b"test1"
data = struct.pack('3s', b"test2")
assert data == b"tes"
data = struct.pack('7s', b"test3")
assert data == b"test3\0\0"
+5 -2
View File
@@ -338,8 +338,11 @@ fn pack_string(
data: &mut dyn Write,
length: usize,
) -> PyResult<()> {
let v = PyBytesRef::try_from_object(vm, arg.clone())?;
match data.write_all(&v.get_value()[..length]) {
let mut v = PyBytesRef::try_from_object(vm, arg.clone())?
.get_value()
.to_vec();
v.resize(length, 0);
match data.write_all(&v) {
Ok(_) => Ok(()),
Err(e) => Err(new_struct_error(vm, format!("{:?}", e))),
}