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:53:30 UTC

svn commit: r191694 - /xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/

Author: cargilld
Date: Tue Jun 21 10:53:28 2005
New Revision: 191694

URL: http://svn.apache.org/viewcvs?rev=191694&view=rev
Log:
Add back changes Bertoni made that were overwritten.

Modified:
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/ListDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
    xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -47,18 +47,7 @@
                         , MemoryManager* const manager)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::AnyURI, manager)
 {
-    try
-    {
-        init(enums, manager);
-    }
-    catch(const OutOfMemoryException&)
-    {
-        throw;
-    }
-    catch (...)
-    {        
-        throw;
-    }
+    init(enums, manager);
 }
 
 DatatypeValidator* AnyURIDatatypeValidator::newInstance(

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* DateDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void DateDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* DateTimeDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void DateTimeDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DayDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DayDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DayDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* DayDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void DayDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* DurationDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void DurationDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/ListDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/ListDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/ListDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/ListDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -332,6 +332,7 @@
                 {
                     // ask the itemType for a complete check
                     BaseRefVectorOf<XMLCh>* tempList = XMLString::tokenizeString(getEnumeration()->elementAt(i), manager);
+                    Janitor<BaseRefVectorOf<XMLCh> >    jan(tempList);
                     int tokenNumber = tempList->size();
 
                     try
@@ -341,15 +342,10 @@
                     }
                     catch(const OutOfMemoryException&)
                     {
+                        jan.release();
+
                         throw;
                     }
-                    catch (...)
-                    {
-                        delete tempList;
-                        throw;
-                    }
-
-                    delete tempList;
 
                     // enum shall pass this->checkContent() as well.
                     checkContent(getEnumeration()->elementAt(i), (ValidationContext*)0, false, manager);
@@ -385,9 +381,9 @@
 /***
  * 2.5.1.2 List datatypes   
  *   
- * The canonical-lexical-representation for the �list� datatype is defined as 
- * the lexical form in which each item in the �list� has the canonical 
- * lexical representation of its �itemType�.
+ * The canonical-lexical-representation for the ·list· datatype is defined as 
+ * the lexical form in which each item in the ·list· has the canonical 
+ * lexical representation of its ·itemType·.
  ***/
 const XMLCh* ListDatatypeValidator::getCanonicalRepresentation(const XMLCh*         const rawData
                                                              ,       MemoryManager* const memMgr

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* MonthDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void MonthDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* MonthDayDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void MonthDayDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* TimeDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void TimeDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -71,6 +71,8 @@
     fMemberTypeValidators = memberTypeValidators;
 }
 
+typedef JanitorMemFunCall<UnionDatatypeValidator>   CleanupType;
+
 UnionDatatypeValidator::UnionDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
@@ -108,19 +110,22 @@
                 , manager);
     }
 
+    CleanupType cleanup(this, &UnionDatatypeValidator::cleanUp);
+
     try
     {
         init(baseValidator, facets, enums, manager);
     }
     catch(const OutOfMemoryException&)
     {
+        // Don't cleanup when out of memory, since executing the
+        // code can cause problems.
+        cleanup.release();
+
         throw;
     }
-    catch (...)
-    {
-        cleanUp();
-        throw;
-    }
+
+    cleanup.release();
 }
 
 void UnionDatatypeValidator::init(DatatypeValidator*            const baseValidator
@@ -370,8 +375,8 @@
 /***
  * 2.5.1.3 Union datatypes
  *
- * The canonical-lexical-representation for a �union� datatype is defined as the lexical form 
- * in which the values have the canonical lexical representation of the appropriate �memberTypes�.       
+ * The canonical-lexical-representation for a ·union· datatype is defined as the lexical form 
+ * in which the values have the canonical lexical representation of the appropriate ·memberTypes·.       
  ***/
 const XMLCh* UnionDatatypeValidator::getCanonicalRepresentation(const XMLCh*         const rawData
                                                               ,       MemoryManager* const memMgr

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* YearDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void YearDatatypeValidator::parse(XMLDateTime* const pDate)

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp?rev=191694&r1=191693&r2=191694&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp Tue Jun 21 10:53:28 2005
@@ -66,6 +66,7 @@
 XMLDateTime* YearMonthDatatypeValidator::parse(const XMLCh* const content, MemoryManager* const manager)
 {
     XMLDateTime *pRetDate = new (manager) XMLDateTime(content, manager);
+    Janitor<XMLDateTime> jan(pRetDate);
 
     try
     {
@@ -73,15 +74,12 @@
     }
     catch(const OutOfMemoryException&)
     {
-        throw;
-    }
-    catch (...)
-    {
-        delete pRetDate;
+        jan.release();
+
         throw;
     }
 
-    return pRetDate;
+    return jan.release();
 }
 
 void YearMonthDatatypeValidator::parse(XMLDateTime* const pDate)



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org