aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/hybrid/sequence.txx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/hybrid/sequence.txx')
-rw-r--r--libxsde/xsde/cxx/hybrid/sequence.txx12
1 files changed, 11 insertions, 1 deletions
diff --git a/libxsde/xsde/cxx/hybrid/sequence.txx b/libxsde/xsde/cxx/hybrid/sequence.txx
index 4fd3a85..b79e9d5 100644
--- a/libxsde/xsde/cxx/hybrid/sequence.txx
+++ b/libxsde/xsde/cxx/hybrid/sequence.txx
@@ -152,7 +152,17 @@ namespace xsde
clear ()
{
for (size_t i = 0; i < size_; ++i)
- delete static_cast<T**> (data_)[i];
+ {
+ T* x = static_cast<T**> (data_)[i];
+
+#ifndef XSDE_CUSTOM_ALLOCATOR
+ delete x;
+#else
+ if (x)
+ x->~T ();
+ cxx::free (x);
+#endif
+ }
size_ = 0;
}