dbertoni    00/04/20 09:30:58

  Modified:    c/src/XPath XNodeSet.cpp XNodeSet.hpp
  Log:
  Fixed casting issues, and problem with conversion to string.
  
  Revision  Changes    Path
  1.4       +16 -30    xml-xalan/c/src/XPath/XNodeSet.cpp
  
  Index: XNodeSet.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XNodeSet.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XNodeSet.cpp      2000/04/11 14:46:13     1.3
  +++ XNodeSet.cpp      2000/04/20 16:30:57     1.4
  @@ -120,15 +120,9 @@
        XObject(source),
        m_support(source.m_support),
        m_value(source.m_value),
  -#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
        m_resultTreeFrag(source.m_resultTreeFrag.get() == 0 ?
                                                0 :
  -                                             
dynamic_cast<ResultTreeFragBase*>(source.m_resultTreeFrag->clone(deepClone)))
  -#else
  -     m_resultTreeFrag(source.m_resultTreeFrag.get() == 0 ?
  -                                             0 :
                                                
source.m_resultTreeFrag->clone(deepClone))
  -#endif
   {
   }
   
  @@ -159,23 +153,7 @@
   double
   XNodeSet::num() const
   {
  -     double result = DoubleSupport::getNaN();
  -
  -     if(m_value.getLength() > 0)
  -     {
  -             const XalanDOMString    s = 
m_support.getNodeData(*m_value.item(0));
  -
  -             if(0 == length(s))
  -             {
  -                     result = 0;
  -             }
  -             else
  -             {
  -                     result = DOMStringToDouble(s);
  -             }
  -     }
  -
  -     return result;
  +     return DOMStringToDouble(str());
   }
   
   
  @@ -235,18 +213,26 @@
                        new ResultTreeFrag(*m_envSupport->getDOMFactory(),
                                                           m_support);
   
  -#if defined(XALAN_OLD_AUTO_PTR)
  -             m_resultTreeFrag = auto_ptr<ResultTreeFragBase>(theFrag);
  -#else
  -         m_resultTreeFrag.reset(theFrag);
  -#endif
  -
                const int       nNodes = m_value.getLength();
   
                for(int i = 0; i < nNodes; i++)
                {
  -                     
m_resultTreeFrag->appendChild(m_value.item(i)->cloneNode(true));
  +                     theFrag->appendChild(m_value.item(i)->cloneNode(true));
                }
  +
  +#if defined(XALAN_OLD_AUTO_PTR)
  +#if defined(XALAN_NO_MUTABLE)
  +             ((XNodeSet*)this)->m_resultTreeFrag = 
auto_ptr<ResultTreeFragBase>(theFrag);
  +#else
  +             m_resultTreeFrag = auto_ptr<ResultTreeFragBase>(theFrag);
  +#endif
  +#else
  +#if defined(XALAN_NO_MUTABLE)
  +             ((XNodeSet*)this)->m_resultTreeFrag.reset(theFrag);
  +#else
  +         m_resultTreeFrag.reset(theFrag);
  +#endif
  +#endif
        }
   
        return *m_resultTreeFrag.get();
  
  
  
  1.4       +8 -0      xml-xalan/c/src/XPath/XNodeSet.hpp
  
  Index: XNodeSet.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XNodeSet.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XNodeSet.hpp      2000/04/11 14:46:13     1.3
  +++ XNodeSet.hpp      2000/04/20 16:30:57     1.4
  @@ -195,9 +195,17 @@
        MutableNodeRefList                                                      
m_value;
   
   #if defined(XALAN_NO_NAMESPACES)
  +#if defined(XALAN_NO_MUTABLE)
  +     auto_ptr<ResultTreeFragBase>                            
m_resultTreeFrag;
  +#else
  +     mutable auto_ptr<ResultTreeFragBase>            m_resultTreeFrag;
  +#endif
  +#else
  +#if defined(XALAN_NO_MUTABLE)
        std::auto_ptr<ResultTreeFragBase>                       
m_resultTreeFrag;
   #else
        mutable std::auto_ptr<ResultTreeFragBase>       m_resultTreeFrag;
  +#endif
   #endif
   };
   
  
  
  

Reply via email to