peiyongz 2004/08/11 10:06:44
Modified: c/src/xercesc/framework/psvi XSValue.hpp XSValue.cpp
Log:
Do not panic if can't create RegEx
Revision Changes Path
1.2 +3 -6 xml-xerces/c/src/xercesc/framework/psvi/XSValue.hpp
Index: XSValue.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSValue.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XSValue.hpp 11 Aug 2004 16:05:53 -0000 1.1
+++ XSValue.hpp 11 Aug 2004 17:06:44 -0000 1.2
@@ -55,8 +55,11 @@
*/
/*
- * $Log $
- * $Id $
+ * $Log$
+ * Revision 1.2 2004/08/11 17:06:44 peiyongz
+ * Do not panic if can't create RegEx
+ *
+ * $Id$
*/
#if !defined(XSVALUE_HPP)
@@ -84,6 +87,7 @@
st_NoCanRep,
st_NoActVal,
st_NotSupported,
+ st_CantCreateRegEx,
st_UnknownType
};
@@ -453,10 +457,6 @@
, int base
, MemoryManager* const manager
);
-
-
- static
- RegularExpression* getRegex();
// -----------------------------------------------------------------------
// data members
1.2 +16 -7 xml-xerces/c/src/xercesc/framework/psvi/XSValue.cpp
Index: XSValue.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSValue.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XSValue.cpp 11 Aug 2004 16:05:53 -0000 1.1
+++ XSValue.cpp 11 Aug 2004 17:06:44 -0000 1.2
@@ -55,8 +55,11 @@
*/
/*
- * $Log $
- * $Id $
+ * $Log$
+ * Revision 1.2 2004/08/11 17:06:44 peiyongz
+ * Do not panic if can't create RegEx
+ *
+ * $Id$
*/
#include <limits.h>
@@ -184,7 +187,7 @@
return *sXSValueMutext;
}
-static RegularExpression& getRegEx()
+static RegularExpression* getRegEx()
{
if (!sXSValueRegEx)
{
@@ -203,14 +206,14 @@
}
catch (...)
{
-
XMLPlatformUtils::panic(PanicHandler::Panic_CanCreateRegEx);
+ return 0;
}
XSValueRegExCleanup.registerCleanup(XSValue::reinitRegEx);
}
}
- return *sXSValueRegEx;
+ return sXSValueRegEx;
}
// ---------------------------------------------------------------------------
@@ -852,8 +855,17 @@
}
- return (datatype == XSValue::dt_token) ?
- true : getRegEx().matches(content, manager);
+ if (datatype == XSValue::dt_language)
+ {
+ RegularExpression* regEx = getRegEx();
+ if (!regEx)
+ {
+ context.fStatus = XSValueContext::st_CantCreateRegEx;
+ return false;
+ }
+
+ return regEx->matches(content, manager);
+ }
break;
case XSValue::dt_NMTOKEN:
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]