dbertoni    01/01/26 14:03:18

  Modified:    c/src/XSLT StylesheetExecutionContext.hpp
                        StylesheetExecutionContextDefault.cpp
                        StylesheetExecutionContextDefault.hpp
  Log:
  Fixed const issues with collation.
  
  Revision  Changes    Path
  1.46      +3 -7      xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
  
  Index: StylesheetExecutionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- StylesheetExecutionContext.hpp    2001/01/16 02:50:02     1.45
  +++ StylesheetExecutionContext.hpp    2001/01/26 22:03:10     1.46
  @@ -339,13 +339,9 @@
         * Add namespace attributes for a node to the list of pending 
attributes.
         * 
         * @param src                 source node
  -      * @param srcIsStylesheetTree true if source node corresponds to a
  -      *                            stylesheet
         */
        virtual void
  -     copyNamespaceAttributes(
  -                     const XalanNode&        src,
  -                     bool                            srcIsStylesheetTree) = 
0;
  +     copyNamespaceAttributes(const XalanNode&        src) = 0;
   
        /**
         * Retrieve the result prefix corresponding to a namespace.
  @@ -1273,7 +1269,7 @@
        virtual int
        collationCompare(
                        const XalanDOMString&   theLHS,
  -                     const XalanDOMString&   theRHS) const = 0;
  +                     const XalanDOMString&   theRHS) = 0;
   
        /**
         * Compare two strings using the collation of the
  @@ -1286,7 +1282,7 @@
        virtual int
        collationCompare(
                        const XalanDOMChar*             theLHS,
  -                     const XalanDOMChar*             theRHS) const = 0;
  +                     const XalanDOMChar*             theRHS) = 0;
   
        /**
         * Determine if a KeyDeclaration is being constructed.
  
  
  
  1.52      +30 -35    
xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
  
  Index: StylesheetExecutionContextDefault.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- StylesheetExecutionContextDefault.cpp     2001/01/19 18:54:56     1.51
  +++ StylesheetExecutionContextDefault.cpp     2001/01/26 22:03:11     1.52
  @@ -112,7 +112,7 @@
   StylesheetExecutionContextDefault::XalanNumberFormatFactory*         
StylesheetExecutionContextDefault::s_xalanNumberFormatFactory =
                
&StylesheetExecutionContextDefault::getDefaultXalanNumberFormatFactory();
   
  -const StylesheetExecutionContextDefault::DefaultCollationCompareFunctor      
        StylesheetExecutionContextDefault::s_defaultFunctor;
  +const StylesheetExecutionContextDefault::DefaultCollationCompareFunctor      
        StylesheetExecutionContextDefault::s_defaultCollationFunctor;
   
   
   
  @@ -139,7 +139,7 @@
        m_formatterListeners(),
        m_printWriters(),
        m_outputStreams(),
  -     m_collationCompareFunctor(&s_defaultFunctor),
  +     m_collationCompareFunctor(0),
        m_variablesStack(),
        m_matchPatternCache(),
        m_keyTables(),
  @@ -303,11 +303,9 @@
   
   
   void
  -StylesheetExecutionContextDefault::copyNamespaceAttributes(
  -                     const XalanNode&        src,
  -                     bool                            srcIsStylesheetTree)
  +StylesheetExecutionContextDefault::copyNamespaceAttributes(const XalanNode&  
        src)
   {
  -     m_xsltProcessor.copyNamespaceAttributes(src, srcIsStylesheetTree);
  +     m_xsltProcessor.copyNamespaceAttributes(src);
   }
   
   
  @@ -1174,31 +1172,11 @@
   int
   StylesheetExecutionContextDefault::collationCompare(
                        const XalanDOMString&   theLHS,
  -                     const XalanDOMString&   theRHS) const
  +                     const XalanDOMString&   theRHS)
   {
  -     assert(m_collationCompareFunctor != 0);
  -
  -     if (length(theLHS) == 0)
  -     {
  -             if (length(theRHS) == 0)
  -             {
  -                     return 0;
  -             }
  -             else
  -             {
  -                     return -1;
  -             }
  -     }
  -     else if (length(theRHS) == 0)
  +     if (m_collationCompareFunctor == 0)
        {
  -             if (length(theLHS) == 0)
  -             {
  -                     return 0;
  -             }
  -             else
  -             {
  -                     return 1;
  -             }
  +             return s_defaultCollationFunctor(c_wstr(theLHS), 
c_wstr(theRHS));
        }
        else
        {
  @@ -1211,11 +1189,18 @@
   int
   StylesheetExecutionContextDefault::collationCompare(
                        const XalanDOMChar*             theLHS,
  -                     const XalanDOMChar*             theRHS) const
  +                     const XalanDOMChar*             theRHS)
   {
  -     assert(m_collationCompareFunctor != 0);
  +     assert(theLHS != 0 && theRHS != 0);
   
  -     return (*m_collationCompareFunctor)(theLHS, theRHS);
  +     if (m_collationCompareFunctor == 0)
  +     {
  +             return s_defaultCollationFunctor(theLHS, theRHS);
  +     }
  +     else
  +     {
  +             return (*m_collationCompareFunctor)(theLHS, theRHS);
  +     }
   }
   
   
  @@ -1247,6 +1232,16 @@
   int
   
StylesheetExecutionContextDefault::DefaultCollationCompareFunctor::operator()(
                        const XalanDOMChar*             theLHS,
  +                     const XalanDOMChar*             theRHS)
  +{
  +     return ::collationCompare(theLHS, theRHS);
  +}
  +
  +
  +
  +int
  
+StylesheetExecutionContextDefault::DefaultCollationCompareFunctor::operator()(
  +                     const XalanDOMChar*             theLHS,
                        const XalanDOMChar*             theRHS) const
   {
        return ::collationCompare(theLHS, theRHS);
  @@ -1254,12 +1249,12 @@
   
   
   
  -const StylesheetExecutionContextDefault::CollationCompareFunctor*
  -StylesheetExecutionContextDefault::installCollationCompareFunctor(const 
CollationCompareFunctor*     theFunctor)
  +StylesheetExecutionContextDefault::CollationCompareFunctor*
  
+StylesheetExecutionContextDefault::installCollationCompareFunctor(CollationCompareFunctor*
   theFunctor)
   {
        assert(theFunctor != 0);
   
  -     const CollationCompareFunctor* const    temp = 
m_collationCompareFunctor;
  +     CollationCompareFunctor* const  temp = m_collationCompareFunctor;
   
        m_collationCompareFunctor = theFunctor;
   
  
  
  
  1.46      +24 -12    
xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
  
  Index: StylesheetExecutionContextDefault.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- StylesheetExecutionContextDefault.hpp     2001/01/16 02:50:03     1.45
  +++ StylesheetExecutionContextDefault.hpp     2001/01/26 22:03:13     1.46
  @@ -236,9 +236,7 @@
                        const XalanDOMString&   value);
   
        virtual void
  -     copyNamespaceAttributes(
  -                     const XalanNode&        src,
  -                     bool                            srcIsStylesheetTree);
  +     copyNamespaceAttributes(const XalanNode&        src);
   
        virtual const XalanDOMString&
        getResultPrefixForNamespace(const XalanDOMString&       theNamespace) 
const;
  @@ -547,12 +545,12 @@
        virtual int
        collationCompare(
                        const XalanDOMString&   theLHS,
  -                     const XalanDOMString&   theRHS) const;
  +                     const XalanDOMString&   theRHS);
   
        virtual int
        collationCompare(
                        const XalanDOMChar*             theLHS,
  -                     const XalanDOMChar*             theRHS) const;
  +                     const XalanDOMChar*             theRHS);
   
        class XALAN_XSLT_EXPORT CollationCompareFunctor
        {
  @@ -563,6 +561,15 @@
                virtual
                ~CollationCompareFunctor();
   
  +             // Non-const version is suitable for use by
  +             // a singe thread.
  +             virtual int
  +             operator()(
  +                     const XalanDOMChar*             theLHS,
  +                     const XalanDOMChar*             theRHS) = 0;
  +
  +             // Const version is suitable for use by
  +             // multiple threads.
                virtual int
                operator()(
                        const XalanDOMChar*             theLHS,
  @@ -581,20 +588,25 @@
                virtual int
                operator()(
                        const XalanDOMChar*             theLHS,
  +                     const XalanDOMChar*             theRHS);
  +
  +             virtual int
  +             operator()(
  +                     const XalanDOMChar*             theLHS,
                        const XalanDOMChar*             theRHS) const;
        };
   
  -     const CollationCompareFunctor*
  -     installCollationCompareFunctor(const CollationCompareFunctor*   
theFunctor);
  +     CollationCompareFunctor*
  +     installCollationCompareFunctor(CollationCompareFunctor*         
theFunctor);
   
        virtual bool
  -     getInConstruction(const KeyDeclaration& keyDeclaration) const;
  +     getInConstruction(const KeyDeclaration&         keyDeclaration) const;
   
        virtual void
  -     beginConstruction(const KeyDeclaration& keyDeclaration);
  +     beginConstruction(const KeyDeclaration&         keyDeclaration);
   
        virtual void
  -     endConstruction(const KeyDeclaration& keyDeclaration);
  +     endConstruction(const KeyDeclaration&   keyDeclaration);
   
        virtual const XalanDecimalFormatSymbols*
        getDecimalFormatSymbols(const XalanDOMString&   name);
  @@ -868,7 +880,7 @@
   
        OutputStreamSetType                                     m_outputStreams;
   
  -     const CollationCompareFunctor*          m_collationCompareFunctor;
  +     CollationCompareFunctor*                        
m_collationCompareFunctor;
   
        /**
         * Holds all information about variables during execution.
  @@ -897,7 +909,7 @@
   
        static XalanNumberFormatFactory*        s_xalanNumberFormatFactory;
   
  -     const static DefaultCollationCompareFunctor             
s_defaultFunctor;
  +     const static DefaultCollationCompareFunctor             
s_defaultCollationFunctor;
   };
   
   
  
  
  

Reply via email to