@@ -209,6 +209,7 @@ cdef extern from "blosc2.h":
209209 uint8_t* ttmp
210210 size_t ttmp_nbytes
211211 blosc2_context* ctx
212+ c_bool output_is_disposable
212213
213214 ctypedef struct blosc2_postfilter_params:
214215 void * user_data
@@ -1682,7 +1683,7 @@ cdef class SChunk:
16821683 cdef blosc2_cparams* cparams = self .schunk.storage.cparams
16831684 cparams.prefilter = < blosc2_prefilter_fn> general_filler
16841685
1685- cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > malloc( sizeof(blosc2_prefilter_params))
1686+ cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > calloc( 1 , sizeof(blosc2_prefilter_params))
16861687 cdef filler_udata* fill_udata = < filler_udata * > malloc(sizeof(filler_udata))
16871688 fill_udata.py_func = < char * > malloc(strlen(func_id) + 1 )
16881689 strcpy(fill_udata.py_func, func_id)
@@ -1715,7 +1716,7 @@ cdef class SChunk:
17151716
17161717 cdef blosc2_cparams* cparams = self .schunk.storage.cparams
17171718 cparams.prefilter = < blosc2_prefilter_fn> general_prefilter
1718- cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > malloc( sizeof(blosc2_prefilter_params))
1719+ cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > calloc( 1 , sizeof(blosc2_prefilter_params))
17191720 cdef user_filters_udata* pref_udata = < user_filters_udata* > malloc(sizeof(user_filters_udata))
17201721 pref_udata.py_func = < char * > malloc(strlen(func_id) + 1 )
17211722 strcpy(pref_udata.py_func, func_id)
@@ -2856,8 +2857,9 @@ cdef class NDArray:
28562857 free(variables[i].name)
28572858 free(variables)
28582859
2859- cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > malloc( sizeof(blosc2_prefilter_params))
2860+ cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > calloc( 1 , sizeof(blosc2_prefilter_params))
28602861 preparams.user_data = udata
2862+ preparams.output_is_disposable = False if aux_reduc is None else True
28612863 cparams.preparams = preparams
28622864 _check_cparams(cparams)
28632865
@@ -2880,7 +2882,7 @@ cdef class NDArray:
28802882 cdef blosc2_cparams* cparams = self .array.sc.storage.cparams
28812883 cparams.prefilter = < blosc2_prefilter_fn> general_udf_prefilter
28822884
2883- cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > malloc( sizeof(blosc2_prefilter_params))
2885+ cdef blosc2_prefilter_params* preparams = < blosc2_prefilter_params * > calloc( 1 , sizeof(blosc2_prefilter_params))
28842886 preparams.user_data = self ._fill_udf_udata(func_id, inputs_id)
28852887 cparams.preparams = preparams
28862888 _check_cparams(cparams)
0 commit comments