From: Jerome St-Louis Date: Thu, 26 Nov 2015 02:35:24 +0000 (-0500) Subject: extras/XMLParser: Configurable character data buffer size X-Git-Tag: 0.44.13~59 X-Git-Url: http://ecere.com/cgi-bin/gitweb.cgi?p=sdk;a=commitdiff_plain;h=1691e97c4031b31d1c190101505f0f2b182ffdeb extras/XMLParser: Configurable character data buffer size --- diff --git a/extras/XMLParser.ec b/extras/XMLParser.ec index ac93896..1822c6b 100644 --- a/extras/XMLParser.ec +++ b/extras/XMLParser.ec @@ -66,6 +66,15 @@ class XMLParser int xmlDepth; bool closingTag; bool openingTag; + char * characterData; + uint charBufSize; + + charBufSize = CHARBUFSIZE; + + ~XMLParser() + { + delete characterData; + } bool GetWord() { @@ -85,7 +94,7 @@ class XMLParser bool commented = false; byte lastCh = ' '; int stringPos; - char characterData[CHARBUFSIZE]; + char * characterData = this.characterData; int charLen = 0; int oldDepth = xmlDepth; tag[0] = 0; @@ -261,7 +270,9 @@ class XMLParser } else { - if(ch == '<' || charLen == CHARBUFSIZE - 1) + if(!characterData) + this.characterData = characterData = new byte[charBufSize]; + if(ch == '<' || charLen == charBufSize - 1) { ProcessCharacterData(characterData); charLen = 0;