diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0ab9949..12467ba 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -95,13 +95,13 @@ jobs: - uses: dtolnay/rust-toolchain@nightly with: components: rust-src - - run: sudo apt-get -y install libfontconfig1-dev + - run: sudo apt-get -y install libfontconfig1-dev llvm - name: cargo test --features serde run: | cargo test -Zbuild-std --target x86_64-unknown-linux-gnu --features serde env: RUSTFLAGS: -Zsanitizer=address - LSAN_OPTIONS: report_objects=1 + LSAN_OPTIONS: report_objects=1:suppressions=lsan_suppressions.txt valgrind: name: Valgrind diff --git a/lsan_suppressions.txt b/lsan_suppressions.txt new file mode 100644 index 0000000..8f652fd --- /dev/null +++ b/lsan_suppressions.txt @@ -0,0 +1,2 @@ +# fontconfig +leak:Fc diff --git a/mupdf-sys/mupdf b/mupdf-sys/mupdf index d68555c..da155bb 160000 --- a/mupdf-sys/mupdf +++ b/mupdf-sys/mupdf @@ -1 +1 @@ -Subproject commit d68555cdabb0d95c0dcab20d7b7660e45fa99731 +Subproject commit da155bb550860319420d01eaed3f59744e5f3748 diff --git a/src/font.rs b/src/font.rs index bab618e..5b7d9d9 100644 --- a/src/font.rs +++ b/src/font.rs @@ -80,7 +80,7 @@ impl Font { context(), c_name.as_ptr(), index, - buffer.into_inner() + buffer.inner )) } .map(|inner| Self { inner }) diff --git a/src/stroke_state.rs b/src/stroke_state.rs index af96895..50b1f6c 100644 --- a/src/stroke_state.rs +++ b/src/stroke_state.rs @@ -122,8 +122,9 @@ impl StrokeState { pub fn dashes(&self) -> Vec { unsafe { let dash_len = (*self.inner).dash_len as usize; + let dash_ptr = (*self.inner).dash_list.as_ptr(); let mut dash_list = Vec::with_capacity(dash_len); - dash_list.extend_from_slice(&(*self.inner).dash_list[0..dash_len]); + dash_list.extend_from_slice(std::slice::from_raw_parts(dash_ptr, dash_len)); dash_list } }