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]

Reply via email to