@@ -14,6 +14,9 @@ To Public License, Version 2, as published by Sam Hocevar. See
14
14
*Tab=3***********************************************************************/
15
15
#pragma GCC diagnostic ignored "-Wdeprecated-enum-enum-conversion"
16
16
17
+ // We use the DefaultAllocator which supports PSRAM
18
+ #define FFT_CUSTOM_ALLOC DefaultAllocator
19
+
17
20
18
21
#if ! defined (ffft_FFTReal_HEADER_INCLUDED)
19
22
#define ffft_FFTReal_HEADER_INCLUDED
@@ -240,7 +243,11 @@ DynArray <T>::DynArray (long size)
240
243
assert (size >= 0 );
241
244
if (size > 0 )
242
245
{
246
+ #ifdef FFT_CUSTOM_ALLOC
247
+ _data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
248
+ #else
243
249
_data_ptr = new DataType [size];
250
+ #endif
244
251
_len = size;
245
252
}
246
253
}
@@ -250,7 +257,11 @@ DynArray <T>::DynArray (long size)
250
257
template <class T >
251
258
DynArray <T>::~DynArray ()
252
259
{
260
+ #ifdef FFT_CUSTOM_ALLOC
261
+ FFT_CUSTOM_ALLOC.removeArray <DataType>(_data_ptr, _len);
262
+ #else
253
263
delete [] _data_ptr;
264
+ #endif
254
265
_data_ptr = 0 ;
255
266
_len = 0 ;
256
267
}
@@ -272,12 +283,19 @@ void DynArray <T>::resize (long size)
272
283
if (size > 0 )
273
284
{
274
285
DataType * old_data_ptr = _data_ptr;
286
+ #ifdef FFT_CUSTOM_ALLOC
287
+ DataType * tmp_data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
288
+ #else
275
289
DataType * tmp_data_ptr = new DataType [size];
276
-
290
+ # endif
277
291
_data_ptr = tmp_data_ptr;
278
292
_len = size;
279
293
294
+ #ifdef FFT_CUSTOM_ALLOC
295
+ FFT_CUSTOM_ALLOC.removeArray <DataType>(old_data_ptr, _len);
296
+ #else
280
297
delete [] old_data_ptr;
298
+ #endif
281
299
}
282
300
}
283
301
@@ -1973,7 +1991,11 @@ DynArray <T>::DynArray (long size)
1973
1991
assert (size >= 0 );
1974
1992
if (size > 0 )
1975
1993
{
1994
+ #ifdef FFT_CUSTOM_ALLOC
1995
+ _data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
1996
+ #else
1976
1997
_data_ptr = new DataType [size];
1998
+ #endif
1977
1999
_len = size;
1978
2000
}
1979
2001
}
@@ -1983,7 +2005,11 @@ DynArray <T>::DynArray (long size)
1983
2005
template <class T >
1984
2006
DynArray <T>::~DynArray ()
1985
2007
{
2008
+ #ifdef FFT_CUSTOM_ALLOC
2009
+ FFT_CUSTOM_ALLOC.removeArray <T>(_data_ptr, _len);
2010
+ #else
1986
2011
delete [] _data_ptr;
2012
+ #endif
1987
2013
_data_ptr = 0 ;
1988
2014
_len = 0 ;
1989
2015
}
@@ -2005,12 +2031,18 @@ void DynArray <T>::resize (long size)
2005
2031
if (size > 0 )
2006
2032
{
2007
2033
DataType * old_data_ptr = _data_ptr;
2034
+ #ifdef FFT_CUSTOM_ALLOC
2035
+ #else
2008
2036
DataType * tmp_data_ptr = new DataType [size];
2037
+ #endif
2009
2038
2010
2039
_data_ptr = tmp_data_ptr;
2011
2040
_len = size;
2012
2041
2042
+ #ifdef FFT_CUSTOM_ALLOC
2043
+ #else
2013
2044
delete [] old_data_ptr;
2045
+ #endif
2014
2046
}
2015
2047
}
2016
2048
0 commit comments