diff --git a/libs/hbb_common/build.rs b/libs/hbb_common/build.rs index 3c2a3c7a4..225ec34c7 100644 --- a/libs/hbb_common/build.rs +++ b/libs/hbb_common/build.rs @@ -8,7 +8,6 @@ fn main() { .customize( protobuf_codegen::Customize::default() .tokio_bytes(true) - // .tokio_bytes_for_string(true) ) .run() .expect("Codegen failed."); diff --git a/src/platform/linux.rs b/src/platform/linux.rs index efd6476b6..f331dd6ee 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -109,7 +109,8 @@ pub fn get_cursor_data(hcursor: u64) -> ResultType { cd.id = (*img).cursor_serial as _; let pixels = std::slice::from_raw_parts((*img).pixels, (cd.width * cd.height) as _); - cd.colors.resize(pixels.len() * 4, 0); + // cd.colors.resize(pixels.len() * 4, 0); + let mut cd_colors = vec![0_u8; pixels.len() * 4]; for y in 0..cd.height { for x in 0..cd.width { let pos = (y * cd.width + x) as usize; @@ -122,12 +123,13 @@ pub fn get_cursor_data(hcursor: u64) -> ResultType { continue; } let pos = pos * 4; - cd.colors[pos] = r as _; - cd.colors[pos + 1] = g as _; - cd.colors[pos + 2] = b as _; - cd.colors[pos + 3] = a as _; + cd_colors[pos] = r as _; + cd_colors[pos + 1] = g as _; + cd_colors[pos + 2] = b as _; + cd_colors[pos + 3] = a as _; } } + cd.colors = cd_colors.into(); res = Some(cd); } if !img.is_null() { diff --git a/src/platform/macos.rs b/src/platform/macos.rs index dabe11e49..1a8096587 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -342,7 +342,7 @@ pub fn get_cursor_data(hcursor: u64) -> ResultType { } Ok(CursorData { id: hcursor, - colors, + colors: colors.into(), hotx: hotspot.x as _, hoty: hotspot.y as _, width: size.width as _,