Skip to content

Commit 957d059

Browse files
committed
Add HUF_CTABLE_WORKSPACE_SIZE_U32 constant
1 parent aaf3685 commit 957d059

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

lib/common/huf.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ pub(crate) const HUF_TABLELOG_MAX: usize = 12;
1313
pub(crate) const HUF_TABLELOG_DEFAULT: core::ffi::c_int = 11;
1414
pub(crate) const HUF_SYMBOLVALUE_MAX: core::ffi::c_int = 255;
1515

16+
pub(crate) const HUF_CTABLE_WORKSPACE_SIZE_U32: usize =
17+
(4 * (HUF_SYMBOLVALUE_MAX as usize + 1)) + 192;
18+
1619
/// Absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work
1720
const HUF_TABLELOG_ABSOLUTEMAX: usize = 12;
1821
const _: () = assert!(

lib/dictBuilder/zdict.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use libc::{free, malloc, memcpy, size_t};
55

66
use crate::lib::common::bits::{ZSTD_NbCommonBytes, ZSTD_highbit32};
77
use crate::lib::common::error_private::{ERR_getErrorName, ERR_isError, Error};
8-
use crate::lib::common::huf::{HUF_CElt, HUF_WORKSPACE_SIZE};
8+
use crate::lib::common::huf::{HUF_CElt, HUF_CTABLE_WORKSPACE_SIZE_U32, HUF_WORKSPACE_SIZE};
99
use crate::lib::common::mem::{MEM_read16, MEM_read64, MEM_readLE32, MEM_readST, MEM_writeLE32};
1010
use crate::lib::common::xxhash::ZSTD_XXH64;
1111
use crate::lib::common::zstd_internal::{
@@ -962,15 +962,15 @@ unsafe fn analyze_entropy_internal(
962962
}
963963

964964
// analyze, build stats, starting with literals
965-
let mut wksp: [u32; 1216] = [0; 1216];
965+
let mut wksp = [0u32; HUF_CTABLE_WORKSPACE_SIZE_U32];
966966
let huffLog = 11;
967967
let mut maxNbBits = HUF_buildCTable_wksp(
968968
hufTable.as_mut_ptr(),
969969
countLit.as_mut_ptr(),
970970
255,
971971
huffLog,
972972
wksp.as_mut_ptr() as *mut core::ffi::c_void,
973-
::core::mem::size_of::<[u32; 1216]>(),
973+
::core::mem::size_of::<[u32; HUF_CTABLE_WORKSPACE_SIZE_U32]>(),
974974
);
975975
if let Some(err) = Error::from_error_code(maxNbBits) {
976976
if notificationLevel >= 1 {
@@ -989,7 +989,7 @@ unsafe fn analyze_entropy_internal(
989989
255,
990990
huffLog,
991991
wksp.as_mut_ptr() as *mut core::ffi::c_void,
992-
::core::mem::size_of::<[u32; 1216]>(),
992+
::core::mem::size_of::<[u32; HUF_CTABLE_WORKSPACE_SIZE_U32]>(),
993993
);
994994
}
995995
let huffLog = maxNbBits as u32;
@@ -1058,7 +1058,7 @@ unsafe fn analyze_entropy_internal(
10581058
255,
10591059
huffLog,
10601060
wksp.as_mut_ptr() as *mut core::ffi::c_void,
1061-
::core::mem::size_of::<[u32; 1216]>(),
1061+
::core::mem::size_of::<[u32; HUF_CTABLE_WORKSPACE_SIZE_U32]>(),
10621062
);
10631063
if let Some(err) = Error::from_error_code(hhSize) {
10641064
if notificationLevel >= 1 {

0 commit comments

Comments
 (0)