Skip to content

Commit fa9c437

Browse files
committed
chore(crc32): migrate to mimalloc_rust
1 parent bdc3927 commit fa9c437

File tree

2 files changed

+9
-19
lines changed

2 files changed

+9
-19
lines changed

packages/crc32/Cargo.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
authors = ["LongYinan <[email protected]>"]
3-
edition = "2018"
3+
edition = "2021"
44
name = "node-rs-crc32"
55
version = "0.1.0"
66

@@ -10,11 +10,9 @@ crate-type = ["cdylib"]
1010
[dependencies]
1111
crc32c = {version = "0.6"}
1212
crc32fast = {version = "1.2", features = ["nightly"]}
13+
global_alloc = {path = "../../crates/alloc"}
1314
napi = "1"
1415
napi-derive = "1"
1516

16-
[target.'cfg(all(target_arch = "x86_64", not(target_env = "musl")))'.dependencies]
17-
mimalloc = {version = "0.1"}
18-
1917
[build-dependencies]
2018
napi-build = "1"

packages/crc32/src/lib.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
#![deny(clippy::all)]
22
#![allow(clippy::nonstandard_macro_braces)]
33

4-
#[macro_use]
5-
extern crate napi_derive;
4+
/// Explicit extern crate to use allocator.
5+
extern crate global_alloc;
66

77
use crc32c::crc32c_append;
88
use crc32fast::Hasher;
99
use napi::{CallContext, JsBuffer, JsNumber, JsObject, Result};
10-
use std::convert::TryInto;
11-
12-
#[cfg(all(
13-
target_arch = "x86_64",
14-
not(target_env = "musl"),
15-
not(debug_assertions)
16-
))]
17-
#[global_allocator]
18-
static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc;
10+
use napi_derive::*;
1911

2012
#[module_exports]
2113
fn init(mut exports: JsObject) -> Result<()> {
@@ -27,16 +19,16 @@ fn init(mut exports: JsObject) -> Result<()> {
2719
#[js_function(2)]
2820
fn crc32c(ctx: CallContext) -> Result<JsNumber> {
2921
let input_data = ctx.get::<JsBuffer>(0)?.into_value()?;
30-
let init_state = ctx.get::<JsNumber>(1)?;
31-
let result = crc32c_append(init_state.try_into()?, &input_data);
22+
let init_state = ctx.get::<JsNumber>(1)?.get_uint32()?;
23+
let result = crc32c_append(init_state, &input_data);
3224
ctx.env.create_uint32(result)
3325
}
3426

3527
#[js_function(2)]
3628
fn crc32(ctx: CallContext) -> Result<JsNumber> {
3729
let input_data = ctx.get::<JsBuffer>(0)?.into_value()?;
38-
let init_state = ctx.get::<JsNumber>(1)?;
39-
let mut hasher = Hasher::new_with_initial(init_state.try_into()?);
30+
let init_state = ctx.get::<JsNumber>(1)?.get_uint32()?;
31+
let mut hasher = Hasher::new_with_initial(init_state);
4032
hasher.update(&input_data);
4133
ctx.env.create_uint32(hasher.finalize())
4234
}

0 commit comments

Comments
 (0)