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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to