@@ -14,6 +14,9 @@ To Public License, Version 2, as published by Sam Hocevar. See
1414*Tab=3***********************************************************************/
1515#pragma GCC diagnostic ignored "-Wdeprecated-enum-enum-conversion"
1616
17+ // We use the DefaultAllocator which supports PSRAM
18+ #define FFT_CUSTOM_ALLOC DefaultAllocator
19+
1720
1821#if ! defined (ffft_FFTReal_HEADER_INCLUDED)
1922#define ffft_FFTReal_HEADER_INCLUDED
@@ -240,7 +243,11 @@ DynArray <T>::DynArray (long size)
240243 assert (size >= 0 );
241244 if (size > 0 )
242245 {
246+ #ifdef FFT_CUSTOM_ALLOC
247+ _data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
248+ #else
243249 _data_ptr = new DataType [size];
250+ #endif
244251 _len = size;
245252 }
246253}
@@ -250,7 +257,11 @@ DynArray <T>::DynArray (long size)
250257template <class T >
251258DynArray <T>::~DynArray ()
252259{
260+ #ifdef FFT_CUSTOM_ALLOC
261+ FFT_CUSTOM_ALLOC.removeArray <DataType>(_data_ptr, _len);
262+ #else
253263 delete [] _data_ptr;
264+ #endif
254265 _data_ptr = 0 ;
255266 _len = 0 ;
256267}
@@ -272,12 +283,19 @@ void DynArray <T>::resize (long size)
272283 if (size > 0 )
273284 {
274285 DataType * old_data_ptr = _data_ptr;
286+ #ifdef FFT_CUSTOM_ALLOC
287+ DataType * tmp_data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
288+ #else
275289 DataType * tmp_data_ptr = new DataType [size];
276-
290+ # endif
277291 _data_ptr = tmp_data_ptr;
278292 _len = size;
279293
294+ #ifdef FFT_CUSTOM_ALLOC
295+ FFT_CUSTOM_ALLOC.removeArray <DataType>(old_data_ptr, _len);
296+ #else
280297 delete [] old_data_ptr;
298+ #endif
281299 }
282300}
283301
@@ -1973,7 +1991,11 @@ DynArray <T>::DynArray (long size)
19731991 assert (size >= 0 );
19741992 if (size > 0 )
19751993 {
1994+ #ifdef FFT_CUSTOM_ALLOC
1995+ _data_ptr = FFT_CUSTOM_ALLOC.createArray <DataType>(size);
1996+ #else
19761997 _data_ptr = new DataType [size];
1998+ #endif
19771999 _len = size;
19782000 }
19792001}
@@ -1983,7 +2005,11 @@ DynArray <T>::DynArray (long size)
19832005template <class T >
19842006DynArray <T>::~DynArray ()
19852007{
2008+ #ifdef FFT_CUSTOM_ALLOC
2009+ FFT_CUSTOM_ALLOC.removeArray <T>(_data_ptr, _len);
2010+ #else
19862011 delete [] _data_ptr;
2012+ #endif
19872013 _data_ptr = 0 ;
19882014 _len = 0 ;
19892015}
@@ -2005,12 +2031,18 @@ void DynArray <T>::resize (long size)
20052031 if (size > 0 )
20062032 {
20072033 DataType * old_data_ptr = _data_ptr;
2034+ #ifdef FFT_CUSTOM_ALLOC
2035+ #else
20082036 DataType * tmp_data_ptr = new DataType [size];
2037+ #endif
20092038
20102039 _data_ptr = tmp_data_ptr;
20112040 _len = size;
20122041
2042+ #ifdef FFT_CUSTOM_ALLOC
2043+ #else
20132044 delete [] old_data_ptr;
2045+ #endif
20142046 }
20152047}
20162048
0 commit comments