From d436dfdda0dad2609cef72e3446cd89d7f00e683 Mon Sep 17 00:00:00 2001 From: Simon Van de Vyver Date: Fri, 25 Oct 2024 10:22:37 +0200 Subject: [PATCH] keep bitpacked text owned before use --- libsais64-rs/src/lib.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libsais64-rs/src/lib.rs b/libsais64-rs/src/lib.rs index 13b4c55..68a07cf 100644 --- a/libsais64-rs/src/lib.rs +++ b/libsais64-rs/src/lib.rs @@ -25,7 +25,14 @@ pub fn sais64(text: &Vec, libsais_sparseness: usize) -> Result, &st let required_bits = libsais_sparseness * BITS_PER_CHAR; if required_bits <= 8 { // bitpacked values fit in uint8_t - let packed_text = if libsais_sparseness == 1 { text } else { &bitpack_text_8(text, libsais_sparseness) }; + let packed_text_data; + let packed_text = if libsais_sparseness == 1 { + text + } else { + packed_text_data = bitpack_text_8(text, libsais_sparseness); + &packed_text_data + }; + sa = vec![0; packed_text.len()]; exit_code = unsafe { libsais64(packed_text.as_ptr(), sa.as_mut_ptr(), packed_text.len() as i64, 0, null_mut()) };