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