You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/06/21 19:15:48 UTC
svn commit: r191689 - in /xerces/c/branches/xerces-2.7/src/xercesc/util:
XMLAbstractDoubleFloat.cpp XMLBigDecimal.cpp XMLBigInteger.cpp
XMLStringTokenizer.cpp XMLUri.cpp
Author: cargilld
Date: Tue Jun 21 10:15:46 2005
New Revision: 191689
URL: http://svn.apache.org/viewcvs?rev=191689&view=rev
Log:
Add back changes Bertoni made that were overwritten.
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLStringTokenizer.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLUri.cpp
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp?rev=191689&r1=191688&r2=191689&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp Tue Jun 21 10:15:46 2005
@@ -611,10 +611,8 @@
janRetBuffer.release();
return retBuffer;
-
- } //try
-
- catch (...)
+ }
+ catch (const NumberFormatException&)
{
return 0;
}
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp?rev=191689&r1=191688&r2=191689&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp Tue Jun 21 10:15:46 2005
@@ -47,6 +47,8 @@
//
**/
+typedef JanitorMemFunCall<XMLBigDecimal> CleanupType;
+
XMLBigDecimal::XMLBigDecimal(const XMLCh* const strValue,
MemoryManager* const manager)
: fSign(0)
@@ -60,6 +62,8 @@
if ((!strValue) || (!*strValue))
ThrowXMLwithMemMgr(NumberFormatException, XMLExcepts::XMLNUM_emptyString, fMemoryManager);
+ CleanupType cleanup(this, &XMLBigDecimal::cleanUp);
+
try
{
fRawDataLen = XMLString::stringLen(strValue);
@@ -74,13 +78,12 @@
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch(...)
- {
- cleanUp();
- throw;
- }
+
+ cleanup.release();
}
XMLBigDecimal::~XMLBigDecimal()
@@ -129,14 +132,19 @@
, MemoryManager* const memMgr)
{
- try
- {
-
XMLCh* retBuf = (XMLCh*) memMgr->allocate( (XMLString::stringLen(rawData)+1) * sizeof(XMLCh));
ArrayJanitor<XMLCh> janName(retBuf, memMgr);
int sign, totalDigits, fractDigits;
- XMLBigDecimal::parseDecimal(rawData, retBuf, sign, totalDigits, fractDigits, memMgr);
+ try
+ {
+ parseDecimal(rawData, retBuf, sign, totalDigits, fractDigits, memMgr);
+ }
+ catch (const NumberFormatException&)
+ {
+ return 0;
+ }
+
//Extra space reserved in case strLen is zero
int strLen = XMLString::stringLen(retBuf);
@@ -188,13 +196,6 @@
}
return retBuffer;
-
- }//try
- catch (...)
- {
- return 0;
- }
-
}
void XMLBigDecimal::parseDecimal(const XMLCh* const toParse
@@ -279,7 +280,7 @@
/***
E2-44 totalDigits
- ... by restricting it to numbers that are expressible as i � 10^-n
+ ... by restricting it to numbers that are expressible as i × 10^-n
where i and n are integers such that |i| < 10^totalDigits and 0 <= n <= totalDigits.
normalization: remove all trailing zero after the '.'
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp?rev=191689&r1=191688&r2=191689&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp Tue Jun 21 10:15:46 2005
@@ -68,9 +68,8 @@
jan.release();
return retBuf;
- }//
-
- catch (...)
+ }
+ catch (const NumberFormatException&)
{
return 0;
}
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLStringTokenizer.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLStringTokenizer.cpp?rev=191689&r1=191688&r2=191689&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLStringTokenizer.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLStringTokenizer.cpp Tue Jun 21 10:15:46 2005
@@ -21,6 +21,7 @@
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
+#include <xercesc/util/Janitor.hpp>
#include <xercesc/util/XMLStringTokenizer.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>
@@ -38,6 +39,9 @@
// ---------------------------------------------------------------------------
// XMLStringTokenizer: Constructors and Destructor
// ---------------------------------------------------------------------------
+
+typedef JanitorMemFunCall<XMLStringTokenizer> CleanupType;
+
XMLStringTokenizer::XMLStringTokenizer( const XMLCh* const srcStr
, MemoryManager* const manager)
: fOffset(0)
@@ -47,6 +51,8 @@
, fTokens(0)
, fMemoryManager(manager)
{
+ CleanupType cleanup(this, &XMLStringTokenizer::cleanUp);
+
try {
if (fStringLen > 0) {
fTokens = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true, fMemoryManager);
@@ -54,11 +60,12 @@
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch(...) {
- cleanUp();
- }
+
+ cleanup.release();
}
XMLStringTokenizer::XMLStringTokenizer(const XMLCh* const srcStr,
@@ -71,6 +78,8 @@
, fTokens(0)
, fMemoryManager(manager)
{
+ CleanupType cleanup(this, &XMLStringTokenizer::cleanUp);
+
try {
@@ -81,11 +90,12 @@
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch(...) {
- cleanUp();
- }
+
+ cleanup.release();
}
XMLStringTokenizer::~XMLStringTokenizer()
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLUri.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLUri.cpp?rev=191689&r1=191688&r2=191689&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLUri.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLUri.cpp Tue Jun 21 10:15:46 2005
@@ -236,6 +236,9 @@
// XMLUri: Constructors and Helper methods
// ---------------------------------------------------------------------------
// ctor# 2
+
+typedef JanitorMemFunCall<XMLUri> CleanupType;
+
XMLUri::XMLUri(const XMLCh* const uriSpec,
MemoryManager* const manager)
: fPort(-1)
@@ -249,18 +252,19 @@
, fURIText(0)
, fMemoryManager(manager)
{
+ CleanupType cleanup(this, &XMLUri::cleanUp);
+
try {
initialize((XMLUri *)0, uriSpec);
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch (...)
- {
- cleanUp();
- throw;
- }
+
+ cleanup.release();
}
// ctor# 7 relative ctor
@@ -278,18 +282,19 @@
, fURIText(0)
, fMemoryManager(manager)
{
+ CleanupType cleanup(this, &XMLUri::cleanUp);
+
try {
initialize(baseURI, uriSpec);
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch (...)
- {
- cleanUp();
- throw;
- }
+
+ cleanup.release();
}
//Copy constructor
@@ -307,36 +312,39 @@
, fURIText(0)
, fMemoryManager(toCopy.fMemoryManager)
{
+ CleanupType cleanup(this, &XMLUri::cleanUp);
+
try {
initialize(toCopy);
}
catch(const OutOfMemoryException&)
{
- throw;
- }
- catch (...)
- {
- cleanUp();
+ cleanup.release();
+
throw;
}
+ cleanup.release();
}
XMLUri& XMLUri::operator=(const XMLUri& toAssign)
{
cleanUp();
+
+ CleanupType cleanup(this, &XMLUri::cleanUp);
+
try {
initialize(toAssign);
}
catch(const OutOfMemoryException&)
{
+ cleanup.release();
+
throw;
}
- catch (...)
- {
- cleanUp();
- throw;
- }
+
+ cleanup.release();
+
return *this;
}
@@ -788,18 +796,7 @@
if (portStr && *portStr)
{
- try
- {
- port = XMLString::parseInt(portStr, fMemoryManager);
- }
- catch(const OutOfMemoryException&)
- {
- throw;
- }
- catch (...)
- {
- throw;
- }
+ port = XMLString::parseInt(portStr, fMemoryManager);
}
} // if > 0
@@ -1144,18 +1141,7 @@
, fMemoryManager);
}
- try
- {
- isConformantUserInfo(newUserInfo, fMemoryManager);
- }
- catch(const OutOfMemoryException&)
- {
- throw;
- }
- catch (...)
- {
- throw;
- }
+ isConformantUserInfo(newUserInfo, fMemoryManager);
if (getUserInfo())
{
@@ -2587,4 +2573,3 @@
}
XERCES_CPP_NAMESPACE_END
-
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org