You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2005/06/17 01:58:33 UTC
svn commit: r191035 - /xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp
/xerces/c/trunk/src/xercesc/util/XMLString.cpp
/xerces/c/trunk/src/xercesc/util/XMLString.hpp
/xerces/c/trunk/src/xercesc/util/XMLUri.cpp
Author: amassari
Date: Thu Jun 16 16:58:32 2005
New Revision: 191035
URL: http://svn.apache.org/viewcvs?rev=191035&view=rev
Log:
Now that XMLString::transcode always use a MemoryManager, XMLString::release must do the same (and XMLString::replicate as a consequence)
Modified:
xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp
xerces/c/trunk/src/xercesc/util/XMLString.cpp
xerces/c/trunk/src/xercesc/util/XMLString.hpp
xerces/c/trunk/src/xercesc/util/XMLUri.cpp
Modified: xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp?rev=191035&r1=191034&r2=191035&view=diff
==============================================================================
--- xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp (original)
+++ xerces/c/trunk/samples/src/DOMPrint/DOMPrint.cpp Thu Jun 16 16:58:32 2005
@@ -535,10 +535,10 @@
//
delete parser;
+ XMLString::release(&gOutputEncoding);
+
// And call the termination method
XMLPlatformUtils::Terminate();
-
- XMLString::release(&gOutputEncoding);
return retval;
}
Modified: xerces/c/trunk/src/xercesc/util/XMLString.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLString.cpp?rev=191035&r1=191034&r2=191035&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLString.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLString.cpp Thu Jun 16 16:58:32 2005
@@ -479,37 +479,6 @@
}
-XMLCh* XMLString::replicate(const XMLCh* const toRep)
-{
- // If a null string, return a null string!
- XMLCh* ret = 0;
- if (toRep)
- {
- const unsigned int len = stringLen(toRep);
- ret = new XMLCh[len + 1];
- memcpy(ret, toRep, (len + 1) * sizeof(XMLCh));
- }
- return ret;
-}
-
-char* XMLString::replicate(const char* const toRep)
-{
- // If a null string, return a null string
- if (!toRep)
- return 0;
-
- //
- // Get the len of the source and allocate a new buffer. Make sure to
- // account for the nul terminator.
- //
- const unsigned int srcLen = strlen(toRep);
- char* ret = new char[srcLen+1];
-
- // Copy over the text, adjusting for the size of a char
- memcpy(ret, toRep, (srcLen+1) * sizeof(char));
- return ret;
-}
-
char* XMLString::replicate( const char* const toRep
, MemoryManager* const manager)
{
@@ -548,7 +517,6 @@
return strlen(src);
}
-
char* XMLString::transcode(const XMLCh* const toTranscode,
MemoryManager* const manager)
{
@@ -1920,28 +1888,16 @@
}
}
-void XMLString::release(char** buf)
-{
- delete [] *buf;
- *buf = 0;
-}
-
-void XMLString::release(XMLCh** buf)
-{
- delete [] *buf;
- *buf = 0;
-}
-
-void XMLString::release(XMLByte** buf)
+void XMLString::release(char** buf, MemoryManager* const manager)
{
- delete [] *buf;
- *buf = 0;
+ manager->deallocate(*buf);
+ *buf = 0;
}
-void XMLString::release(void** buf, MemoryManager* const manager)
+void XMLString::release(XMLCh** buf, MemoryManager* const manager)
{
- manager->deallocate(*buf);
- *buf = 0;
+ manager->deallocate(*buf);
+ *buf = 0;
}
// ---------------------------------------------------------------------------
Modified: xerces/c/trunk/src/xercesc/util/XMLString.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLString.hpp?rev=191035&r1=191034&r2=191035&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLString.hpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLString.hpp Thu Jun 16 16:58:32 2005
@@ -15,232 +15,7 @@
*/
/*
- * $Log$
- * Revision 1.34 2005/04/05 17:00:45 cargilld
- * Implement version of lowercase that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
- *
- * Revision 1.33 2005/03/20 19:02:45 cargilld
- * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
- *
- * Revision 1.32 2005/03/08 09:04:09 amassari
- * Improve performances of XMLString::tokenizeString (jira# 1363) - patch by Christian Will
- *
- * Revision 1.31 2004/12/21 16:02:51 cargilld
- * Attempt to fix various apidoc problems.
- *
- * Revision 1.30 2004/12/14 02:09:20 cargilld
- * Performance update from Christian Will.
- *
- * Revision 1.29 2004/12/06 10:47:01 amassari
- * Added XMLString::release(void**, MemoryManager*) [jira# 1301]
- *
- * Revision 1.28 2004/09/08 13:56:24 peiyongz
- * Apache License Version 2.0
- *
- * Revision 1.27 2004/09/02 19:08:09 cargilld
- * Fix API Doc warning message
- *
- * Revision 1.26 2004/08/11 16:07:27 peiyongz
- * isValidNOTATION
- *
- * Revision 1.25 2004/05/25 18:11:32 peiyongz
- * removeChar() added
- *
- * Revision 1.24 2004/03/10 17:35:17 amassari
- * Fix documentation for binToText (bug# 9207)
- *
- * Revision 1.23 2003/12/24 15:24:13 cargilld
- * More updates to memory management so that the static memory manager.
- *
- * Revision 1.22 2003/12/17 20:00:49 cargilld
- * Update for memory management so that the static memory manager (one
- * used to call Initialize) is only for static data.
- *
- * Revision 1.21 2003/12/17 00:18:35 cargilld
- * Update to memory management so that the static memory manager (one used to call Initialize) is only for static data.
- *
- * Revision 1.20 2003/10/02 11:07:26 gareth
- * Made the non-memory manager version of replicate not inlined. Updated the documentation for the memory manager versions so they don't tell you you should call release.
- *
- * Revision 1.19 2003/10/01 00:22:20 knoaman
- * Add a lastIndexOf method that takes the string length as one of the params.
- *
- * Revision 1.18 2003/08/25 20:39:47 neilg
- * fix XMLString::findAny(...) docs so that they match what the method actually does (and has done since time immemorial)
- *
- * Revision 1.17 2003/05/18 14:02:05 knoaman
- * Memory manager implementation: pass per instance manager.
- *
- * Revision 1.16 2003/05/15 19:07:46 knoaman
- * Partial implementation of the configurable memory manager.
- *
- * Revision 1.15 2003/04/21 20:07:05 knoaman
- * Performance: use memcpy in moveChars and replicate.
- *
- * Revision 1.14 2003/02/25 16:42:31 tng
- * [Bug 7072] Documentation for XMLString::transcode states invalid return value.
- *
- * 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;
- *
- * Revision 1.11 2002/12/20 22:10:21 tng
- * XML 1.1
- *
- * Revision 1.10 2002/12/18 14:17:54 gareth
- * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
- *
- * Revision 1.9 2002/12/04 02:32:43 knoaman
- * #include cleanup.
- *
- * Revision 1.8 2002/11/05 17:42:39 peiyongz
- * equals( const char* const, const char* const)
- *
- * Revision 1.7 2002/11/04 15:22:05 tng
- * C++ Namespace Support.
- *
- * Revision 1.6 2002/10/01 19:45:22 tng
- * Performance in XMLString::equals, only need to check one string for null as they are equal already.
- *
- * Revision 1.5 2002/09/24 19:41:21 tng
- * New inline function equals that is modified from compareString but simply return true or false.
- *
- * Revision 1.4 2002/09/23 18:42:18 tng
- * DOM L3: Support baseURI. Add utility fixURI to transform an absolute path filename to standard URI form.
- *
- * Revision 1.3 2002/08/27 19:24:43 peiyongz
- * Bug#12087: patch from Thomas Ford (tom@decisionsoft.com)
- *
- * Revision 1.2 2002/02/20 18:17:02 tng
- * [Bug 5977] Warnings on generating apiDocs.
- *
- * Revision 1.1.1.1 2002/02/01 22:22:16 peiyongz
- * sane_include
- *
- * Revision 1.26 2001/08/10 16:23:06 peiyongz
- * isHex(), isAlphaNum(), isAllWhiteSpace() and patternMatch() Added
- *
- * Revision 1.25 2001/07/06 20:27:57 peiyongz
- * isValidaQName()
- *
- * Revision 1.24 2001/07/04 14:38:20 peiyongz
- * IDDatatypeValidator: created
- * DatatypeValidatorFactory: IDDTV enabled
- * XMLString:isValidName(): to validate Name (XML [4][5])
- *
- * Revision 1.23 2001/06/13 14:07:55 peiyongz
- * isValidaEncName() to validate an encoding name (EncName)
- *
- * Revision 1.22 2001/05/23 15:44:51 tng
- * Schema: NormalizedString fix. By Pei Yong Zhang.
- *
- * Revision 1.21 2001/05/11 13:26:31 tng
- * Copyright update.
- *
- * Revision 1.20 2001/05/09 18:43:30 tng
- * Add StringDatatypeValidator and BooleanDatatypeValidator. By Pei Yong Zhang.
- *
- * Revision 1.19 2001/05/03 20:34:35 tng
- * Schema: SchemaValidator update
- *
- * Revision 1.18 2001/05/03 19:17:35 knoaman
- * TraverseSchema Part II.
- *
- * Revision 1.17 2001/03/21 21:56:13 tng
- * Schema: Add Schema Grammar, Schema Validator, and split the DTDValidator into DTDValidator, DTDScanner, and DTDGrammar.
- *
- * Revision 1.16 2001/03/02 20:52:46 knoaman
- * Schema: Regular expression - misc. updates for error messages,
- * and additions of new functions to XMLString class.
- *
- * Revision 1.15 2001/01/15 21:26:34 tng
- * Performance Patches by David Bertoni.
- *
- * Details: (see xerces-c-dev mailing Jan 14)
- * XMLRecognizer.cpp: the internal encoding string XMLUni::fgXMLChEncodingString
- * was going through this function numerous times. As a result, the top hot-spot
- * for the parse was _wcsicmp(). The real problem is that the Microsofts wide string
- * functions are unbelievably slow. For things like encodings, it might be
- * better to use a special comparison function that only considers a-z and
- * A-Z as characters with case. This works since the character set for
- * encodings is limit to printable ASCII characters.
- *
- * XMLScanner2.cpp: This also has some case-sensitive vs. insensitive compares.
- * They are also much faster. The other tweak is to only make a copy of an attribute
- * string if it needs to be split. And then, the strategy is to try to use a
- * stack-based buffer, rather than a dynamically-allocated one.
- *
- * SAX2XMLReaderImpl.cpp: Again, more case-sensitive vs. insensitive comparisons.
- *
- * KVStringPair.cpp & hpp: By storing the size of the allocation, the storage can
- * likely be re-used many times, cutting down on dynamic memory allocations.
- *
- * XMLString.hpp: a more efficient implementation of stringLen().
- *
- * DTDValidator.cpp: another case of using a stack-based buffer when possible
- *
- * These patches made a big difference in parse time in some of our test
- * files, especially the ones are very attribute-heavy.
- *
- * Revision 1.14 2000/10/13 22:47:57 andyh
- * Fix bug (failure to null-terminate result) in XMLString::trim().
- * Patch contributed by Nadav Aharoni
- *
- * Revision 1.13 2000/04/12 18:42:15 roddey
- * Improved docs in terms of what 'max chars' means in the method
- * parameters.
- *
- * Revision 1.12 2000/04/06 19:42:51 rahulj
- * Clarified how big the target buffer should be in the API
- * documentation.
- *
- * Revision 1.11 2000/03/23 01:02:38 roddey
- * Updates to the XMLURL class to correct a lot of parsing problems
- * and to add support for the port number. Updated the URL tests
- * to test some of this new stuff.
- *
- * Revision 1.10 2000/03/20 23:00:46 rahulj
- * Moved the inline definition of stringLen before the first
- * use. This satisfied the HP CC compiler.
- *
- * Revision 1.9 2000/03/02 19:54:49 roddey
- * This checkin includes many changes done while waiting for the
- * 1.1.0 code to be finished. I can't list them all here, but a list is
- * available elsewhere.
- *
- * Revision 1.8 2000/02/24 20:05:26 abagchi
- * Swat for removing Log from API docs
- *
- * Revision 1.7 2000/02/16 18:51:52 roddey
- * Fixed some facts in the docs and reformatted the docs to stay within
- * a reasonable line width.
- *
- * Revision 1.6 2000/02/16 17:07:07 abagchi
- * Added API docs
- *
- * Revision 1.5 2000/02/06 07:48:06 rahulj
- * Year 2K copyright swat.
- *
- * Revision 1.4 2000/01/12 00:16:23 roddey
- * Changes to deal with multiply nested, relative pathed, entities and to deal
- * with the new URL class changes.
- *
- * Revision 1.3 1999/12/18 00:18:10 roddey
- * More changes to support the new, completely orthagonal support for
- * intrinsic encodings.
- *
- * Revision 1.2 1999/12/15 19:41:28 roddey
- * Support for the new transcoder system, where even intrinsic encodings are
- * done via the same transcoder abstraction as external ones.
- *
- * Revision 1.1.1.1 1999/11/09 01:05:52 twl
- * Initial checkin
- *
- * Revision 1.2 1999/11/08 20:45:21 rahul
- * Swat for adding in Product name and CVS comment log variable.
- *
+ * $Id $
*/
#if !defined(XMLSTRING_HPP)
@@ -893,48 +668,30 @@
/** @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 allocated with the MemoryManager. It 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
* @param manager The MemoryManager to use to allocate the string
* @return Returns a pointer to the replicated string
+ * @see XMLString::release(char**, MemoryManager*)
*/
static char* replicate(const char* const toRep,
- MemoryManager* const manager);
-
- /** 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);
+ MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
/** Replicates a string
* NOTE: The returned buffer is allocated with the MemoryManager. It 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
* @param manager The MemoryManager to use to allocate the string
* @return Returns a pointer to the replicated string
+ * @see XMLString::release(XMLCh**, MemoryManager*)
*/
static XMLCh* replicate(const XMLCh* const toRep,
- MemoryManager* const manager);
+ MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
//@}
@@ -1368,7 +1125,7 @@
*
* @param toTranscode The string to be transcoded
* @return Returns the transcoded string
- * @see XMLString::release(XMLCh**)
+ * @see XMLString::release(XMLCh**, MemoryManager*)
*/
static char* transcode
(
@@ -1407,7 +1164,7 @@
*
* @param toTranscode The string to be transcoded
* @return Returns the transcoded string
- * @see XMLString::release(char**)
+ * @see XMLString::release(char**, MemoryManager*)
*/
static XMLCh* transcode
(
@@ -1585,43 +1342,30 @@
/** @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.
+ * Release the parameter string that was allocated by XMLString::transcode and XMLString::replicate.
+ * The implementation will call MemoryManager::deallocate and then turn the string to a null pointer.
*
* @param buf The string to be deleted and become a null pointer.
+ * @param manager The MemoryManager used to allocate the string
*/
- static void release(XMLByte** buf);
+ static void release
+ (
+ char** buf
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
/**
- * Release the parameter string that was allocated using the version of XMLString::transcode
- * that accepts a MemoryManager.
+ * Release the parameter string that was allocated by XMLString::transcode and XMLString::replicate.
* The implementation will call MemoryManager::deallocate and then turn the string to a null pointer.
*
* @param buf The string to be deleted and become a null pointer.
- * @param manager The MemoryManager to use to allocate objects
+ * @param manager The MemoryManager used to allocate the string
*/
static void release
(
- void** buf
- , MemoryManager* const manager
+ XMLCh** buf
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
-
//@}
Modified: xerces/c/trunk/src/xercesc/util/XMLUri.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLUri.cpp?rev=191035&r1=191034&r2=191035&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLUri.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLUri.cpp Thu Jun 16 16:58:32 2005
@@ -356,27 +356,27 @@
void XMLUri::cleanUp()
{
if (fScheme)
- XMLString::release((void**)&fScheme, fMemoryManager);//delete[] fScheme;
+ XMLString::release(&fScheme, fMemoryManager);//delete[] fScheme;
if (fUserInfo)
- XMLString::release((void**)&fUserInfo, fMemoryManager);//delete[] fUserInfo;
+ XMLString::release(&fUserInfo, fMemoryManager);//delete[] fUserInfo;
if (fHost)
- XMLString::release((void**)&fHost, fMemoryManager);//delete[] fHost;
+ XMLString::release(&fHost, fMemoryManager);//delete[] fHost;
if (fRegAuth)
- XMLString::release((void**)&fRegAuth, fMemoryManager);//delete[] fRegAuth;
+ XMLString::release(&fRegAuth, fMemoryManager);//delete[] fRegAuth;
if (fPath)
- XMLString::release((void**)&fPath, fMemoryManager);//delete[] fPath;
+ XMLString::release(&fPath, fMemoryManager);//delete[] fPath;
if (fQueryString)
- XMLString::release((void**)&fQueryString, fMemoryManager);//delete[] fQueryString;
+ XMLString::release(&fQueryString, fMemoryManager);//delete[] fQueryString;
if (fFragment)
- XMLString::release((void**)&fFragment, fMemoryManager);//delete[] fFragment;
+ XMLString::release(&fFragment, fMemoryManager);//delete[] fFragment;
- XMLString::release((void**)&fURIText, fMemoryManager);//delete[] fURIText;
+ XMLString::release(&fURIText, fMemoryManager);//delete[] fURIText;
}
void XMLUri::initialize(const XMLUri& toCopy)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org