peiyongz    2004/08/13 14:29:21

  Modified:    c/src/xercesc/framework/psvi XSValue.hpp XSValue.cpp
  Log:
  fMemAllocated
  
  Revision  Changes    Path
  1.4       +6 -2      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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XSValue.hpp       12 Aug 2004 14:24:34 -0000      1.3
  +++ XSValue.hpp       13 Aug 2004 21:29:20 -0000      1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2004/08/13 21:29:20  peiyongz
  + * fMemAllocated
  + *
    * Revision 1.3  2004/08/12 14:24:34  peiyongz
    * HP aCC A.03
    *
  @@ -464,7 +467,8 @@
       // -----------------------------------------------------------------------
       //  data members
       // -----------------------------------------------------------------------
  -    MemoryManager*      fMemoryManager;    
  +    bool                fMemAllocated;
  +    MemoryManager*      fMemoryManager;
   };
   
   
  
  
  
  1.3       +30 -8     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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSValue.cpp       11 Aug 2004 17:06:44 -0000      1.2
  +++ XSValue.cpp       13 Aug 2004 21:29:21 -0000      1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.3  2004/08/13 21:29:21  peiyongz
  + * fMemAllocated
  + *
    * Revision 1.2  2004/08/11 17:06:44  peiyongz
    * Do not panic if can't create RegEx
    *
  @@ -231,14 +234,14 @@
   //  XSValue: Constructors and Destructor
   // ---------------------------------------------------------------------------
   XSValue::XSValue(MemoryManager*  const manager)
  -:fMemoryManager(manager)
  +:fMemAllocated(false)
  +,fMemoryManager(manager)
   {
  -    fData.f_strVal = 0;
   }
   
   XSValue::~XSValue()
   {
  -    if (fData.f_strVal)
  +    if (fMemAllocated)
           fMemoryManager->deallocate(fData.f_strVal);
   }
     
  @@ -971,17 +974,35 @@
           if (context.getValidation() && !validateNumerics(content, datatype, 
context, manager))
               return 0;
   
  +        XMLCh* retVal;
  +
           if (datatype == XSValue::dt_decimal)
           {
  -            return XMLBigDecimal::getCanonicalRepresentation(content, manager);
  +            retVal = XMLBigDecimal::getCanonicalRepresentation(content, manager);
  +
  +            if (!retVal)
  +                context.fStatus = XSValueContext::st_InvalidChar;
  +
  +            return retVal;
  +
           }
           else if (datatype == XSValue::dt_float || datatype == XSValue::dt_double  )
           {
  -            return XMLAbstractDoubleFloat::getCanonicalRepresentation(content, 
manager);
  +            retVal = XMLAbstractDoubleFloat::getCanonicalRepresentation(content, 
manager);
  +
  +            if (!retVal)
  +                context.fStatus = XSValueContext::st_InvalidChar;
  +
  +            return retVal;
           }  
           else 
           {
  -            return XMLBigInteger::getCanonicalRepresentation(content, manager);
  +            retVal = XMLBigInteger::getCanonicalRepresentation(content, manager);
  +
  +            if (!retVal)
  +                context.fStatus = XSValueContext::st_InvalidChar;
  +
  +            return retVal;
           }
       }
   
  @@ -1555,6 +1576,7 @@
   
                   XSValue* retVal = new (manager) XSValue(manager);
                   retVal->fData.f_strVal = decodedData;
  +                retVal->fMemAllocated = true;
                   return retVal;
               }
               break;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to