tng 2003/02/05 10:50:56 Modified: c/src/xercesc/util Base64.hpp XMLString.cpp XMLString.hpp Log: [Bug 11915] Utility for freeing memory. Revision Changes Path 1.5 +17 -2 xml-xerces/c/src/xercesc/util/Base64.hpp Index: Base64.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Base64.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Base64.hpp 4 Nov 2002 15:22:03 -0000 1.4 +++ Base64.hpp 5 Feb 2003 18:50:56 -0000 1.5 @@ -84,11 +84,16 @@ /** * Encodes octets into Base64 data * + * NOTE: The returned buffer is dynamically allocated and is the + * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. + * * @param inputData Binary data in XMLByte stream. * @param inputLength Length of the XMLByte stream. * @param outputLength Length of the encoded Base64 byte stream. * @return Encoded Base64 data in XMLByte stream, * or NULL if input data can not be encoded. + * @see XMLString::release(XMLByte**) */ static XMLByte* encode(const XMLByte* const inputData, const unsigned int inputLength, @@ -97,10 +102,15 @@ /** * Decodes Base64 data into octets * + * NOTE: The returned buffer is dynamically allocated and is the + * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. + * * @param inputData Base64 data in XMLByte stream. * @param outputLength Length of decoded XMLByte stream. * @return Decoded binary data in XMLByte stream, - * or NULL if input data can not be decoded. + * or NULL if input data can not be decoded. + * @see XMLString::release(XMLByte**) */ static XMLByte* decode(const XMLByte* const inputData, unsigned int* outputLength); @@ -108,10 +118,15 @@ /** * Decodes Base64 data into XMLCh * + * NOTE: The returned buffer is dynamically allocated and is the + * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. + * * @param inputData Base64 data in XMLCh stream. * @param outputLength Length of decoded XMLCh stream * @return Decoded binary data in XMLCh stream, * or NULL if input data can not be decoded. + * @see XMLString::release(XMLCh**) */ static XMLCh* decode(const XMLCh* const inputData, unsigned int* outputLength); 1.21 +19 -2 xml-xerces/c/src/xercesc/util/XMLString.cpp Index: XMLString.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- XMLString.cpp 4 Feb 2003 21:37:45 -0000 1.20 +++ XMLString.cpp 5 Feb 2003 18:50:56 -0000 1.21 @@ -1670,7 +1670,7 @@ ( *startPtr != chLF) && ( *startPtr != chHTab) && ( *startPtr != chSpace) ) - { + { *retPtr++ = *startPtr; } @@ -1750,6 +1750,23 @@ } } +void XMLString::release(char** buf) +{ + delete [] *buf; + *buf = 0; +} + +void XMLString::release(XMLCh** buf) +{ + delete [] *buf; + *buf = 0; +} + +void XMLString::release(XMLByte** buf) +{ + delete [] *buf; + *buf = 0; +} // --------------------------------------------------------------------------- // XMLString: Private static methods 1.13 +230 -188 xml-xerces/c/src/xercesc/util/XMLString.hpp Index: XMLString.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- XMLString.hpp 24 Jan 2003 23:16:33 -0000 1.12 +++ XMLString.hpp 5 Feb 2003 18:50:56 -0000 1.13 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.13 2003/02/05 18:50:56 tng + * [Bug 11915] Utility for freeing memory. + * * Revision 1.12 2003/01/24 23:16:33 peiyongz * removeWS() added; * @@ -239,187 +242,7 @@ { public: /* Static methods for native character mode string manipulation */ - /** @name Conversion functions */ - //@{ - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const unsigned int toFormat - , char* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const unsigned int toFormat - , XMLCh* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const unsigned long toFormat - , char* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const unsigned long toFormat - , XMLCh* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const long toFormat - , char* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const long toFormat - , XMLCh* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const int toFormat - , char* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** Converts binary data to a text string based a given radix - * - * @param toFormat The beginning of the input string to convert - * @param toFill The buffer that will hold the output on return. The - * size of this buffer should at least be 'maxChars + 1'. - * @param maxChars The maximum number of output characters that can be - * accepted. If the result will not fit, it is an error. - * @param radix The radix of the input data, based on which the conversion - * will be done - */ - static void binToText - ( - const int toFormat - , XMLCh* const toFill - , const unsigned int maxChars - , const unsigned int radix - ); - - /** - * Converts a string of decimal chars to a binary value - * - * Note that leading and trailng whitespace is legal and will be ignored - * but the remainder must be all decimal digits. - * - * @param toConvert The string of digits to convert - * @param toFill The unsigned int value to fill with the converted - * value. - */ - static bool textToBin - ( - const XMLCh* const toConvert - , unsigned int& toFill - ); - - /** - * Converts a string of decimal chars to a binary value - * - * Note that leading and trailng whitespace is legal and will be ignored, - * - * Only one and either of (+,-) after the leading whitespace, before - * any other characters are allowed. - * - * but the remainder must be all decimal digits. - * - * @param toConvert The string of digits to convert - */ - static int parseInt - ( - const XMLCh* const toConvert - ); - - //@} /** @name String concatenation functions */ //@{ @@ -932,7 +755,7 @@ //@} - /** @name Substring function */ + /** @name Substring function */ //@{ /** Create a substring of a givend string. The substring begins at the * specified beginIndex and extends to the character at index @@ -971,14 +794,24 @@ /** @name Replication function */ //@{ /** Replicates a string + * NOTE: The returned buffer is dynamically allocated and is the + * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. + * * @param toRep The string to replicate * @return Returns a pointer to the replicated string + * @see XMLString::release(char**) */ static char* replicate(const char* const toRep); /** Replicates a string + * NOTE: The returned buffer is dynamically allocated and is the + * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. + * @param toRep The string to replicate * @return Returns a pointer to the replicated string + * @see XMLString::release(XMLCh**) */ static XMLCh* replicate(const XMLCh* const toRep); @@ -1172,11 +1005,195 @@ */ static bool isAllWhiteSpace(const XMLCh* const toCheck); + /** Find is the string appears in the enum list + * @param toFind the string to be found + * @param enumList the list + * return true if found + */ + static bool isInList(const XMLCh* const toFind, const XMLCh* const enumList); + //@} /** @name Conversion functions */ //@{ + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const unsigned int toFormat + , char* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const unsigned int toFormat + , XMLCh* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const unsigned long toFormat + , char* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const unsigned long toFormat + , XMLCh* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const long toFormat + , char* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const long toFormat + , XMLCh* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const int toFormat + , char* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** Converts binary data to a text string based a given radix + * + * @param toFormat The beginning of the input string to convert + * @param toFill The buffer that will hold the output on return. The + * size of this buffer should at least be 'maxChars + 1'. + * @param maxChars The maximum number of output characters that can be + * accepted. If the result will not fit, it is an error. + * @param radix The radix of the input data, based on which the conversion + * will be done + */ + static void binToText + ( + const int toFormat + , XMLCh* const toFill + , const unsigned int maxChars + , const unsigned int radix + ); + + /** + * Converts a string of decimal chars to a binary value + * + * Note that leading and trailng whitespace is legal and will be ignored + * but the remainder must be all decimal digits. + * + * @param toConvert The string of digits to convert + * @param toFill The unsigned int value to fill with the converted + * value. + */ + static bool textToBin + ( + const XMLCh* const toConvert + , unsigned int& toFill + ); + + /** + * Converts a string of decimal chars to a binary value + * + * Note that leading and trailng whitespace is legal and will be ignored, + * + * Only one and either of (+,-) after the leading whitespace, before + * any other characters are allowed. + * + * but the remainder must be all decimal digits. + * + * @param toConvert The string of digits to convert + */ + static int parseInt + ( + const XMLCh* const toConvert + ); + /** Cut leading chars from a string * * @param toCutFrom The string to cut chars from @@ -1192,9 +1209,11 @@ * * NOTE: The returned buffer is dynamically allocated and is the * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. * * @param toTranscode The string to be transcoded * @return Returns the transcoded string + * @see XMLString::release(XMLCh**) */ static char* transcode ( @@ -1228,9 +1247,11 @@ * * NOTE: The returned buffer is dynamically allocated and is the * responsibility of the caller to delete it when not longer needed. + * You can call XMLString::release to release this returned buffer. * * @param toTranscode The string to be transcoded * @return Returns the transcoded string + * @see XMLString::release(char**) */ static XMLCh* transcode ( @@ -1277,13 +1298,6 @@ */ static BaseRefVectorOf<XMLCh>* tokenizeString(const XMLCh* const tokenizeSrc); - /** Find is the string appears in the enum list - * @param toFind the string to be found - * @param enumList the list - * return true if found - */ - static bool isInList(const XMLCh* const toFind, const XMLCh* const enumList); - //@} /** @name Formatting functions */ @@ -1375,6 +1389,34 @@ * @param target The target string pre-allocated to store the fixed uri */ static void fixURI(const XMLCh* const str, XMLCh* const target); + + //@} + /** @name String Memory Management functions */ + //@{ + /** + * Release the parameter char string that was allocated by the implementation (i.e.the parser). + * The implementation will call operator delete[] and then turn the string to a null pointer. + * + * @param buf The string to be deleted and become a null pointer. + */ + static void release(char** buf); + + /** + * Release the parameter XMLCh string that was allocated by the implementation (i.e.the parser). + * The implementation will call operator delete[] and then turn the string to a null pointer. + * + * @param buf The string to be deleted and become a null pointer. + */ + static void release(XMLCh** buf); + + /** + * Release the parameter XMLByte string that was allocated by the implementation (i.e.the parser). + * The implementation will call operator delete[] and then turn the string to a null pointer. + * + * @param buf The string to be deleted and become a null pointer. + */ + static void release(XMLByte** buf); + //@}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]