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]