diff options
Diffstat (limited to 'libxsde/xsde/cxx/serializer/validating/normalized-string.cxx')
-rw-r--r-- | libxsde/xsde/cxx/serializer/validating/normalized-string.cxx | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx b/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx index 89bb32c..8d807a4 100644 --- a/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx +++ b/libxsde/xsde/cxx/serializer/validating/normalized-string.cxx @@ -6,6 +6,10 @@ #include <xsde/cxx/serializer/validating/normalized-string.hxx> #include <xsde/cxx/serializer/validating/string-common.hxx> +#ifdef XSDE_CUSTOM_ALLOCATOR +# include <xsde/cxx/allocator.hxx> +#endif + namespace xsde { namespace cxx @@ -17,8 +21,15 @@ namespace xsde normalized_string_simpl:: ~normalized_string_simpl () { - if (free_) - delete[] const_cast<char*> (value_); + if (free_ && value_) + { + char* v = const_cast<char*> (value_); +#ifndef XSDE_CUSTOM_ALLOCATOR + delete[] v; +#else + cxx::free (v); +#endif + } } void normalized_string_simpl:: @@ -51,7 +62,12 @@ namespace xsde if (free_) { - delete[] const_cast<char*> (value_); + char* v = const_cast<char*> (value_); +#ifndef XSDE_CUSTOM_ALLOCATOR + delete[] v; +#else + cxx::free (v); +#endif value_ = 0; } } |