Xerces-C++
  1. Xerces-C++
  2. XERCESC-1304

XSValue::getActValStrings translates dt_boolean wrong

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.6.0
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows XP Professional

      Description

      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;

        Activity

        Hide
        cargilld added a comment -

        I checked in a fix for this problem. Please verify.
        Thanks.

        David

        Show
        cargilld added a comment - I checked in a fix for this problem. Please verify. Thanks. David
        Hide
        Patrick Frants added a comment -

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

        Show
        Patrick Frants added a comment - I would expect this to be fixed in the 2.6 branch also...
        Hide
        Patrick Frants added a comment -

        Already changed our copy of the 2.6 source code.

        I will not check out the head revision from CVS. The fix is trivial and
        looks ok to me.

        Is this issue now closed? As far as I am concerned it can be closed.

        Show
        Patrick Frants added a comment - Already changed our copy of the 2.6 source code. I will not check out the head revision from CVS. The fix is trivial and looks ok to me. Is this issue now closed? As far as I am concerned it can be closed.
        Hide
        cargilld added a comment -

        Closing as per last comment.

        BTW, there have been numerous other changes to XSValue.cpp/hpp since 2.6.0. If you are using XSValue you may want to review the code changes.

        These changes are not all binary compatible so are only made to the HEAD branch as per the Xerces Release Policy.

        Show
        cargilld added a comment - Closing as per last comment. BTW, there have been numerous other changes to XSValue.cpp/hpp since 2.6.0. If you are using XSValue you may want to review the code changes. These changes are not all binary compatible so are only made to the HEAD branch as per the Xerces Release Policy.

          People

          • Assignee:
            Unassigned
            Reporter:
            Patrick Frants
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development