You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Patrick Frants (JIRA)" <xe...@xml.apache.org> on 2004/12/01 20:06:24 UTC

[jira] Commented: (XERCESC-1304) XSValue::getActValStrings translates dt_boolean wrong

     [ http://nagoya.apache.org/jira/browse/XERCESC-1304?page=comments#action_56068 ]
     
Patrick Frants commented on XERCESC-1304:
-----------------------------------------

I would expect this to be fixed in the 2.6 branch also...

> XSValue::getActValStrings translates dt_boolean wrong
> -----------------------------------------------------
>
>          Key: XERCESC-1304
>          URL: http://nagoya.apache.org/jira/browse/XERCESC-1304
>      Project: Xerces-C++
>         Type: Bug
>     Versions: 2.6.0
>  Environment: Windows XP Professional
>     Reporter: Patrick Frants

>
> In the lines (marked with BUG) where retVal->fData.fValue.f_bool is assigned a boolean value, the *wrong* value is assigned.
> XMLUni::fgBooleanValueSpace[0] and XMLUni::fgBooleanValueSpace[2] contain the values for false.
> XMLUni::fgBooleanValueSpace[1] and XMLUni::fgBooleanValueSpace[3] contain the values for true.
> Does anybody actually use this code?
> XSValue*  
> XSValue::getActValStrings(const XMLCh*         const content    
>                         ,       DataType             datatype
>                         ,       Status&              status
>                         ,       XMLVersion           version
>                         ,       bool                 toValidate
>                         ,       MemoryManager* const manager)
> {
>     try
>     {
>         switch (datatype)
>         { 
>         case XSValue::dt_boolean:
>             {
>                 //do validation here more efficiently
>                 if (XMLString::equals(content, XMLUni::fgBooleanValueSpace[0]) ||
>                     XMLString::equals(content, XMLUni::fgBooleanValueSpace[2])  )
>                 {
>                     XSValue* retVal = new (manager) XSValue(dt_boolean, manager);
> BUG                    retVal->fData.fValue.f_bool = true;
>                     return retVal;
>                 }
>                 else if (XMLString::equals(content, XMLUni::fgBooleanValueSpace[1]) ||
>                          XMLString::equals(content, XMLUni::fgBooleanValueSpace[3])  )
>                 {
>                     XSValue* retVal = new (manager) XSValue(dt_boolean, manager);
> BUG                    retVal->fData.fValue.f_bool = false;
>                     return retVal;
>                 }
>                 else
>                 {
>                     status = st_FOCA0002;
>                     return 0;
>                 }
>             }
>             break;

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org