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