Skip to content

Commit 17a19c7

Browse files
committed
refactor(server): pass bitmapUpdate by ref
Signed-off-by: Marc-André Lureau <[email protected]>
1 parent fa89695 commit 17a19c7

File tree

1 file changed

+9
-10
lines changed
  • crates/ironrdp-server/src/encoder

1 file changed

+9
-10
lines changed

crates/ironrdp-server/src/encoder/mod.rs

+9-10
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl UpdateEncoder {
114114
}
115115

116116
pub(crate) fn bitmap(&mut self, bitmap: BitmapUpdate) -> Result<UpdateFragmenter<'_>> {
117-
self.bitmap_updater.handle(bitmap, &mut self.pdu_encoder)
117+
self.bitmap_updater.handle(&bitmap, &mut self.pdu_encoder)
118118
}
119119

120120
pub(crate) fn fragmenter_from_owned(&self, res: UpdateFragmenterOwned) -> UpdateFragmenter<'_> {
@@ -134,7 +134,7 @@ enum BitmapUpdater {
134134
}
135135

136136
impl BitmapUpdater {
137-
fn handle<'a>(&mut self, bitmap: BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
137+
fn handle<'a>(&mut self, bitmap: &BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
138138
match self {
139139
Self::None(up) => up.handle(bitmap, encoder),
140140
Self::Bitmap(up) => up.handle(bitmap, encoder),
@@ -144,20 +144,19 @@ impl BitmapUpdater {
144144
}
145145

146146
trait BitmapUpdateHandler {
147-
fn handle<'a>(&mut self, bitmap: BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>>;
147+
fn handle<'a>(&mut self, bitmap: &BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>>;
148148
}
149149

150150
#[derive(Debug)]
151151
struct NoneHandler;
152152

153153
impl BitmapUpdateHandler for NoneHandler {
154-
fn handle<'a>(&mut self, bitmap: BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
154+
fn handle<'a>(&mut self, bitmap: &BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
155155
let stride = usize::from(bitmap.format.bytes_per_pixel()) * usize::from(bitmap.width.get());
156156
let mut data = Vec::with_capacity(stride * usize::from(bitmap.height.get()));
157157
for row in bitmap.data.chunks(bitmap.stride).rev() {
158158
data.extend_from_slice(&row[..stride]);
159159
}
160-
161160
encoder.set_surface(bitmap, CodecId::None as u8, &data)
162161
}
163162
}
@@ -181,9 +180,9 @@ impl BitmapHandler {
181180
}
182181

183182
impl BitmapUpdateHandler for BitmapHandler {
184-
fn handle<'a>(&mut self, bitmap: BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
183+
fn handle<'a>(&mut self, bitmap: &BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
185184
let len = loop {
186-
match self.bitmap.encode(&bitmap, encoder.buffer.as_mut_slice()) {
185+
match self.bitmap.encode(bitmap, encoder.buffer.as_mut_slice()) {
187186
Err(e) => match e.kind() {
188187
ironrdp_core::EncodeErrorKind::NotEnoughBytes { .. } => {
189188
encoder.buffer.resize(encoder.buffer.len() * 2, 0);
@@ -216,10 +215,10 @@ impl RemoteFxHandler {
216215
}
217216

218217
impl BitmapUpdateHandler for RemoteFxHandler {
219-
fn handle<'a>(&mut self, bitmap: BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
218+
fn handle<'a>(&mut self, bitmap: &BitmapUpdate, encoder: &'a mut PduEncoder) -> Result<UpdateFragmenter<'a>> {
220219
let mut buffer = vec![0; bitmap.data.len()];
221220
let len = loop {
222-
match self.remotefx.encode(&bitmap, buffer.as_mut_slice()) {
221+
match self.remotefx.encode(bitmap, buffer.as_mut_slice()) {
223222
Err(e) => match e.kind() {
224223
ironrdp_core::EncodeErrorKind::NotEnoughBytes { .. } => {
225224
buffer.resize(buffer.len() * 2, 0);
@@ -264,7 +263,7 @@ impl PduEncoder {
264263
Ok(&self.buffer[..pos])
265264
}
266265

267-
fn set_surface(&mut self, bitmap: BitmapUpdate, codec_id: u8, data: &[u8]) -> Result<UpdateFragmenter<'_>> {
266+
fn set_surface(&mut self, bitmap: &BitmapUpdate, codec_id: u8, data: &[u8]) -> Result<UpdateFragmenter<'_>> {
268267
let destination = ExclusiveRectangle {
269268
left: bitmap.x,
270269
top: bitmap.y,

0 commit comments

Comments
 (0)