--- parser3/src/main/pa_charset.C 2003/03/25 10:25:25 1.33.2.19.2.9 +++ parser3/src/main/pa_charset.C 2003/03/26 18:52:50 1.33.2.19.2.12 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan(http://paf.design.ru) */ -static const char* IDENT_CHARSET_C="$Date: 2003/03/25 10:25:25 $"; +static const char* IDENT_CHARSET_C="$Date: 2003/03/26 18:52:50 $"; #include "pa_charset.h" #include "pa_charsets.h" @@ -92,13 +92,6 @@ Charset::Charset(const String& aname, co #endif } -Charset::~Charset() { - // @todonow unregister encodings -#ifdef XML - // not deleting transcoder, that's not our business -#endif -} - void Charset::load_definition(const String& afile_spec) { // pcre_tables // lowcase, flipcase, bits digit+word+whitespace, masks @@ -449,7 +442,7 @@ void Charset::transcodeToUTF8( const void* source_body, size_t source_content_length, const void *& adest_body, size_t& dest_content_length) const { dest_content_length=source_content_length*6/*so that surly enough, max utf8 seq len=6*/; - XMLByte *dest_body=new XMLByte[dest_content_length]; + XMLByte *dest_body=new(PointerFreeGC) XMLByte[dest_content_length]; if(::transcodeToUTF8( (XMLByte *)source_body, source_content_length, @@ -466,7 +459,7 @@ void Charset::transcodeFromUTF8( const void* source_body, size_t source_content_length, const void *& adest_body, size_t& dest_content_length) const { dest_content_length=source_content_length*6/*so that surly enough, "ÿ" has max ratio */; - XMLByte *dest_body=new XMLByte[dest_content_length]; + XMLByte *dest_body=new(PointerFreeGC) XMLByte[dest_content_length]; if(::transcodeFromUTF8( (XMLByte *)source_body, source_content_length, @@ -482,15 +475,15 @@ void Charset::transcodeFromUTF8( /// transcode using both charsets void Charset::transcodeToCharset( - const Charset& dest_charset, - const void* source_body, size_t source_content_length, - const void *& adest_body, size_t& adest_content_length) const { + const Charset& dest_charset, + const void* source_body, size_t source_content_length, + const void *& adest_body, size_t& adest_content_length) const { if(&dest_charset==this) { adest_body=source_body; adest_content_length=source_content_length; } else { size_t dest_content_length=source_content_length; - unsigned char *dest_body=new unsigned char[dest_content_length]; + unsigned char *dest_body=new(PointerFreeGC) unsigned char[dest_content_length]; const XMLByte* srcPtr=(XMLByte *)source_body; const XMLByte* srcEnd=(XMLByte *)source_body+source_content_length; @@ -585,13 +578,13 @@ const char* Charset::transcode_cstr(xmlC return out; } const String& Charset::transcode(xmlChar* s) { - return *new String(transcode_cstr(s), 0/*auto-size*/, String::L_CLEAN); + return *new String(transcode_cstr(s), 0/*auto-size*/, true); } const char* Charset::transcode_cstr(GdomeDOMString* s) { return s?transcode_cstr(BAD_CAST s->str):""; } const String& Charset::transcode(GdomeDOMString* s) { - return *new String(transcode_cstr(s), 0/*auto-size*/, String::L_CLEAN); + return *new String(transcode_cstr(s), 0/*auto-size*/, true); } /// @test less memory using -maybe- xmlParserInputBufferCreateMem