diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:21:29 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:21:29 +0200 |
commit | bada6666c70977a058755ccf232e7d67b24adeed (patch) | |
tree | 1e92d50cebce96abaf9bce19e36026c47f77b9ba /xsd/libxsd/xsd/cxx/xml/char-lcp.txx | |
parent | eaf34adcbd8095bc6d1f3371b1227f654c7b19fc (diff) |
New upstream release
Diffstat (limited to 'xsd/libxsd/xsd/cxx/xml/char-lcp.txx')
-rw-r--r-- | xsd/libxsd/xsd/cxx/xml/char-lcp.txx | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/xsd/libxsd/xsd/cxx/xml/char-lcp.txx b/xsd/libxsd/xsd/cxx/xml/char-lcp.txx index 4603537..c71d92f 100644 --- a/xsd/libxsd/xsd/cxx/xml/char-lcp.txx +++ b/xsd/libxsd/xsd/cxx/xml/char-lcp.txx @@ -1,13 +1,19 @@ // file : xsd/cxx/xml/char-lcp.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include <cstring> // std::memcpy #include <xercesc/util/XMLString.hpp> -#include <xsd/cxx/auto-array.hxx> +#include <xsd/cxx/config.hxx> // XSD_CXX11 + +#ifdef XSD_CXX11 +# include <memory> // std::unique_ptr +#else +# include <xsd/cxx/auto-array.hxx> +#endif + #include <xsd/cxx/xml/std-memory-manager.hxx> namespace xsd @@ -21,7 +27,11 @@ namespace xsd to (const XMLCh* s) { std_memory_manager mm; +#ifdef XSD_CXX11 + std::unique_ptr<C[], std_memory_manager&> r ( +#else auto_array<C, std_memory_manager> r ( +#endif xercesc::XMLString::transcode (s, &mm), mm); return std::basic_string<C> (r.get ()); } @@ -30,12 +40,21 @@ namespace xsd std::basic_string<C> char_lcp_transcoder<C>:: to (const XMLCh* s, std::size_t len) { - auto_array<XMLCh> tmp (new XMLCh[len + 1]); +#ifdef XSD_CXX11 + std::unique_ptr<XMLCh[]> tmp ( +#else + auto_array<XMLCh> tmp ( +#endif + new XMLCh[len + 1]); std::memcpy (tmp.get (), s, len * sizeof (XMLCh)); tmp[len] = XMLCh (0); std_memory_manager mm; +#ifdef XSD_CXX11 + std::unique_ptr<C[], std_memory_manager&> r ( +#else auto_array<C, std_memory_manager> r ( +#endif xercesc::XMLString::transcode (tmp.get (), &mm), mm); tmp.reset (); |