Skip to content

Commit 49375b4

Browse files
committed
refactor: use actual dst size instead of min_dst_size
1 parent 2060bb7 commit 49375b4

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/codec/lz4/encoder.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,21 @@ impl Lz4Encoder {
126126
Lz4Fn::Flush | Lz4Fn::End => self.flush_buffer_size,
127127
};
128128

129-
let (dst_buffer, maybe_internal_buffer) = if min_dst_size > output.unwritten().len() {
129+
let output_len = output.unwritten().len();
130+
131+
let (dst_buffer, dst_size, maybe_internal_buffer) = if min_dst_size > output_len {
130132
let buffer_size = self.block_buffer_size;
131133
let buffer = self
132134
.maybe_buffer
133135
.get_or_insert_with(|| PartialBuffer::new(Vec::with_capacity(buffer_size)));
134136
buffer.reset();
135-
(buffer.unwritten_mut().as_mut_ptr(), Some(buffer))
137+
(
138+
buffer.unwritten_mut().as_mut_ptr(),
139+
buffer_size,
140+
Some(buffer),
141+
)
136142
} else {
137-
(output.unwritten_mut().as_mut_ptr(), None)
143+
(output.unwritten_mut().as_mut_ptr(), output_len, None)
138144
};
139145

140146
let len = match lz4_fn {
@@ -143,7 +149,7 @@ impl Lz4Encoder {
143149
LZ4F_compressBegin(
144150
self.ctx.get_mut().ctx,
145151
dst_buffer,
146-
min_dst_size,
152+
dst_size,
147153
&self.preferences,
148154
)
149155
})?;
@@ -155,7 +161,7 @@ impl Lz4Encoder {
155161
LZ4F_compressUpdate(
156162
self.ctx.get_mut().ctx,
157163
dst_buffer,
158-
min_dst_size,
164+
dst_size,
159165
input.unwritten().as_ptr(),
160166
src_size,
161167
core::ptr::null(),
@@ -168,7 +174,7 @@ impl Lz4Encoder {
168174
LZ4F_flush(
169175
self.ctx.get_mut().ctx,
170176
dst_buffer,
171-
min_dst_size,
177+
dst_size,
172178
core::ptr::null(),
173179
)
174180
})?,
@@ -177,7 +183,7 @@ impl Lz4Encoder {
177183
LZ4F_compressEnd(
178184
self.ctx.get_mut().ctx,
179185
dst_buffer,
180-
min_dst_size,
186+
dst_size,
181187
core::ptr::null(),
182188
)
183189
})?;

0 commit comments

Comments
 (0)