@@ -769,21 +769,30 @@ uint32 IRAM_ATTR user_iram_memory_is_enabled(void)
769
769
#include < cstdlib>
770
770
#include < new>
771
771
772
- // The sized deletes are defined in other files.
773
- #pragma GCC diagnostic ignored "-Wsized-deallocation"
774
-
775
772
// These function replace their weak counterparts tagged with _GLIBCXX_WEAK_DEFINITION
776
- void operator delete (void * ptr) noexcept
773
+ void _heap_delete (void * ptr, const void * caller ) noexcept
777
774
{
778
- void * caller = __builtin_return_address (0 );
779
775
ISR_CHECK__LOG_NOT_SAFE (caller);
780
776
_heap_vPortFree (ptr, NULL , 0 , caller);
781
777
}
782
778
779
+ void operator delete (void * ptr) noexcept
780
+ {
781
+ _heap_delete (ptr, __builtin_return_address (0 ));
782
+ }
783
+
784
+ void operator delete[] (void *ptr) noexcept
785
+ {
786
+ _heap_delete (ptr, __builtin_return_address (0 ));
787
+ }
788
+
783
789
void operator delete (void * ptr, std::size_t ) noexcept
784
790
{
785
- void * caller = __builtin_return_address (0 );
786
- ISR_CHECK__LOG_NOT_SAFE (caller);
787
- _heap_vPortFree (ptr, NULL , 0 , caller);
791
+ _heap_delete (ptr, __builtin_return_address (0 ));
792
+ }
793
+
794
+ void operator delete[] (void * ptr, std::size_t ) noexcept
795
+ {
796
+ _heap_delete (ptr, __builtin_return_address (0 ));
788
797
}
789
798
#endif
0 commit comments