Skip to content

Commit fbcda35

Browse files
authored
chore(image): use slice rather than Uint8Array (#134)
1 parent 89631c3 commit fbcda35

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

.github/workflows/CI.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,8 @@ jobs:
336336
fail-fast: false
337337
matrix:
338338
settings:
339+
- host: windows-11-arm
340+
target: aarch64-pc-windows-msvc
339341
- host: windows-latest
340342
target: x86_64-pc-windows-msvc
341343
- host: macos-latest

packages/binding/src/transformer.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -184,22 +184,22 @@ pub(crate) struct ImageMetaData {
184184
}
185185

186186
/// `env` from `Node.js` can ensure the thread safe.
187-
pub(crate) struct ThreadSafeDynamicImage {
187+
pub(crate) struct ThreadsafeDynamicImage {
188188
raw: Arc<Uint8Array>,
189189
image: *mut Option<ImageMetaData>,
190190
}
191191

192-
impl Drop for ThreadSafeDynamicImage {
192+
impl Drop for ThreadsafeDynamicImage {
193193
fn drop(&mut self) {
194194
unsafe {
195195
drop(Box::from_raw(self.image));
196196
}
197197
}
198198
}
199199

200-
impl ThreadSafeDynamicImage {
200+
impl ThreadsafeDynamicImage {
201201
fn new(input: Arc<Uint8Array>) -> Self {
202-
ThreadSafeDynamicImage {
202+
ThreadsafeDynamicImage {
203203
image: Box::into_raw(Box::new(None)),
204204
raw: input,
205205
}
@@ -283,8 +283,8 @@ impl ThreadSafeDynamicImage {
283283
}
284284
}
285285

286-
unsafe impl Send for ThreadSafeDynamicImage {}
287-
unsafe impl Sync for ThreadSafeDynamicImage {}
286+
unsafe impl Send for ThreadsafeDynamicImage {}
287+
unsafe impl Sync for ThreadsafeDynamicImage {}
288288

289289
#[napi]
290290
pub enum JsColorType {
@@ -341,7 +341,7 @@ pub struct Metadata {
341341
}
342342

343343
pub struct MetadataTask {
344-
dynamic_image: Arc<ThreadSafeDynamicImage>,
344+
dynamic_image: Arc<ThreadsafeDynamicImage>,
345345
with_exif: bool,
346346
}
347347

@@ -416,7 +416,7 @@ struct ImageTransformArgs {
416416
}
417417

418418
pub struct EncodeTask {
419-
image: Arc<ThreadSafeDynamicImage>,
419+
image: Arc<ThreadsafeDynamicImage>,
420420
options: EncodeOptions,
421421
image_transform_args: ImageTransformArgs,
422422
}
@@ -558,7 +558,7 @@ impl Task for EncodeTask {
558558
meta.image = meta.image.crop_imm(x, y, width, height);
559559
}
560560
for (buffer, x, y) in std::mem::take(&mut self.image_transform_args.overlay).into_iter() {
561-
let top = ThreadSafeDynamicImage::new(buffer.clone());
561+
let top = ThreadsafeDynamicImage::new(buffer.clone());
562562
let top_image_meta = top.get(true)?;
563563
overlay(&mut meta.image, &top_image_meta.image, x, y);
564564
}
@@ -667,7 +667,7 @@ impl Task for EncodeTask {
667667

668668
#[napi]
669669
pub struct Transformer {
670-
pub(crate) dynamic_image: Arc<ThreadSafeDynamicImage>,
670+
pub(crate) dynamic_image: Arc<ThreadsafeDynamicImage>,
671671
image_transform_args: ImageTransformArgs,
672672
}
673673

@@ -676,7 +676,7 @@ impl Transformer {
676676
#[napi(constructor)]
677677
pub fn new(input: Uint8Array) -> Transformer {
678678
Self {
679-
dynamic_image: Arc::new(ThreadSafeDynamicImage::new(Arc::new(input))),
679+
dynamic_image: Arc::new(ThreadsafeDynamicImage::new(Arc::new(input))),
680680
image_transform_args: ImageTransformArgs::default(),
681681
}
682682
}
@@ -726,12 +726,12 @@ impl Transformer {
726726
let height = pix_map.height();
727727
let data = pix_map.take();
728728

729-
Transformer::from_rgba_pixels(Either::A(data.into()), width, height)
729+
Transformer::from_rgba_pixels(Either::A(data.as_slice()), width, height)
730730
}
731731

732732
#[napi]
733733
pub fn from_rgba_pixels(
734-
input: Either<Uint8Array, Uint8ClampedArray>,
734+
input: Either<&[u8], Uint8ClampedSlice>,
735735
width: u32,
736736
height: u32,
737737
) -> Result<Transformer> {
@@ -752,7 +752,7 @@ impl Transformer {
752752
has_parsed_exif: true,
753753
}));
754754
Ok(Self {
755-
dynamic_image: Arc::new(ThreadSafeDynamicImage {
755+
dynamic_image: Arc::new(ThreadsafeDynamicImage {
756756
raw: Arc::new(vec![0].into()),
757757
image: Box::into_raw(image_meta),
758758
}),

0 commit comments

Comments
 (0)