From 2e501c68a8641a2b3c430b55f13491a9c1c5d0f5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 11 May 2010 12:20:11 +0200 Subject: Add support for custom allocators New example: examples/cxx/hybrid/allocator. --- libxsde/xsde/cxx/serializer/validating/name.cxx | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'libxsde/xsde/cxx/serializer/validating/name.cxx') diff --git a/libxsde/xsde/cxx/serializer/validating/name.cxx b/libxsde/xsde/cxx/serializer/validating/name.cxx index c1fec6e..4c974c0 100644 --- a/libxsde/xsde/cxx/serializer/validating/name.cxx +++ b/libxsde/xsde/cxx/serializer/validating/name.cxx @@ -8,6 +8,10 @@ #include #include +#ifdef XSDE_CUSTOM_ALLOCATOR +# include +#endif + namespace xsde { namespace cxx @@ -19,8 +23,15 @@ namespace xsde name_simpl:: ~name_simpl () { - if (free_) - delete[] const_cast (value_); + if (free_ && value_) + { + char* v = const_cast (value_); +#ifndef XSDE_CUSTOM_ALLOCATOR + delete[] v; +#else + cxx::free (v); +#endif + } } void name_simpl:: @@ -67,7 +78,12 @@ namespace xsde if (free_) { - delete[] const_cast (value_); + char* v = const_cast (value_); +#ifndef XSDE_CUSTOM_ALLOCATOR + delete[] v; +#else + cxx::free (v); +#endif value_ = 0; } } -- cgit v1.1