1- use std:: rc :: Rc ;
1+ use std:: sync :: Arc ;
22
33use ironrdp_core:: { decode_cursor, DecodeErrorKind , ReadCursor , WriteBuf } ;
44use ironrdp_graphics:: image_processing:: PixelFormat ;
@@ -24,7 +24,7 @@ pub enum UpdateKind {
2424 PointerDefault ,
2525 PointerHidden ,
2626 PointerPosition { x : u16 , y : u16 } ,
27- PointerBitmap ( Rc < DecodedPointer > ) ,
27+ PointerBitmap ( Arc < DecodedPointer > ) ,
2828}
2929
3030pub struct Processor {
@@ -216,17 +216,17 @@ impl Processor {
216216 PointerUpdateData :: Color ( pointer) => {
217217 let cache_index = pointer. cache_index ;
218218
219- let decoded_pointer = Rc :: new (
219+ let decoded_pointer = Arc :: new (
220220 DecodedPointer :: decode_color_pointer_attribute ( & pointer, bitmap_target)
221221 . expect ( "Failed to decode color pointer attribute" ) ,
222222 ) ;
223223
224224 let _ = self
225225 . pointer_cache
226- . insert ( usize:: from ( cache_index) , Rc :: clone ( & decoded_pointer) ) ;
226+ . insert ( usize:: from ( cache_index) , Arc :: clone ( & decoded_pointer) ) ;
227227
228228 if !self . pointer_software_rendering {
229- processor_updates. push ( UpdateKind :: PointerBitmap ( Rc :: clone ( & decoded_pointer) ) ) ;
229+ processor_updates. push ( UpdateKind :: PointerBitmap ( Arc :: clone ( & decoded_pointer) ) ) ;
230230 } else if let Some ( rect) = image. update_pointer ( decoded_pointer) ? {
231231 processor_updates. push ( UpdateKind :: Region ( rect) ) ;
232232 }
@@ -240,7 +240,7 @@ impl Processor {
240240 self . use_system_pointer = false ;
241241 // Send graphics update
242242 if !self . pointer_software_rendering {
243- processor_updates. push ( UpdateKind :: PointerBitmap ( Rc :: clone ( & cached_pointer) ) ) ;
243+ processor_updates. push ( UpdateKind :: PointerBitmap ( Arc :: clone ( & cached_pointer) ) ) ;
244244 } else if let Some ( rect) = image. update_pointer ( cached_pointer) ? {
245245 processor_updates. push ( UpdateKind :: Region ( rect) ) ;
246246 } else {
@@ -256,35 +256,35 @@ impl Processor {
256256 PointerUpdateData :: New ( pointer) => {
257257 let cache_index = pointer. color_pointer . cache_index ;
258258
259- let decoded_pointer = Rc :: new (
259+ let decoded_pointer = Arc :: new (
260260 DecodedPointer :: decode_pointer_attribute ( & pointer, bitmap_target)
261261 . expect ( "Failed to decode pointer attribute" ) ,
262262 ) ;
263263
264264 let _ = self
265265 . pointer_cache
266- . insert ( usize:: from ( cache_index) , Rc :: clone ( & decoded_pointer) ) ;
266+ . insert ( usize:: from ( cache_index) , Arc :: clone ( & decoded_pointer) ) ;
267267
268268 if !self . pointer_software_rendering {
269- processor_updates. push ( UpdateKind :: PointerBitmap ( Rc :: clone ( & decoded_pointer) ) ) ;
269+ processor_updates. push ( UpdateKind :: PointerBitmap ( Arc :: clone ( & decoded_pointer) ) ) ;
270270 } else if let Some ( rect) = image. update_pointer ( decoded_pointer) ? {
271271 processor_updates. push ( UpdateKind :: Region ( rect) ) ;
272272 }
273273 }
274274 PointerUpdateData :: Large ( pointer) => {
275275 let cache_index = pointer. cache_index ;
276276
277- let decoded_pointer: Rc < DecodedPointer > = Rc :: new (
277+ let decoded_pointer: Arc < DecodedPointer > = Arc :: new (
278278 DecodedPointer :: decode_large_pointer_attribute ( & pointer, bitmap_target)
279279 . expect ( "Failed to decode large pointer attribute" ) ,
280280 ) ;
281281
282282 let _ = self
283283 . pointer_cache
284- . insert ( usize:: from ( cache_index) , Rc :: clone ( & decoded_pointer) ) ;
284+ . insert ( usize:: from ( cache_index) , Arc :: clone ( & decoded_pointer) ) ;
285285
286286 if !self . pointer_software_rendering {
287- processor_updates. push ( UpdateKind :: PointerBitmap ( Rc :: clone ( & decoded_pointer) ) ) ;
287+ processor_updates. push ( UpdateKind :: PointerBitmap ( Arc :: clone ( & decoded_pointer) ) ) ;
288288 } else if let Some ( rect) = image. update_pointer ( decoded_pointer) ? {
289289 processor_updates. push ( UpdateKind :: Region ( rect) ) ;
290290 }
0 commit comments