dbertoni    01/07/17 21:20:35

  Modified:    c/src/XalanExtensions FunctionDifference.cpp
                        FunctionDistinct.cpp FunctionEvaluate.cpp
                        FunctionHasSameNodes.cpp FunctionIntersection.cpp
                        FunctionNodeSet.cpp
  Log:
  Fixed problem with executing extension functions.
  
  Revision  Changes    Path
  1.2       +16 -10    xml-xalan/c/src/XalanExtensions/FunctionDifference.cpp
  
  Index: FunctionDifference.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionDifference.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionDifference.cpp    2001/06/14 19:31:31     1.1
  +++ FunctionDifference.cpp    2001/07/18 04:20:35     1.2
  @@ -77,8 +77,8 @@
   
   XObjectPtr
   FunctionDifference::execute(
  -             XPathExecutionContext&                  executionContext,
  -             XalanNode*                                              context)
  +             XPathExecutionContext&  executionContext,
  +             XalanNode*                              context)
   {
        executionContext.error(getError(), context);
   
  @@ -90,7 +90,7 @@
   XObjectPtr
   FunctionDifference::execute(
                XPathExecutionContext&  executionContext,
  -             XalanNode*                              context,                
        
  +             XalanNode*                              context,        
                const XObjectPtr                arg1)
   {
        executionContext.error(getError(), context);
  @@ -103,7 +103,7 @@
   XObjectPtr
   FunctionDifference::execute(
                        XPathExecutionContext&  executionContext,
  -                     XalanNode*                              /* context */,  
                
  +                     XalanNode*                              /* context */,  
        
                        const XObjectPtr                arg1,
                        const XObjectPtr                arg2)
   {
  @@ -138,7 +138,7 @@
   XObjectPtr
   FunctionDifference::execute(
                        XPathExecutionContext&  executionContext,
  -                     XalanNode*                              context,        
                
  +                     XalanNode*                              context,
                        const XObjectPtr                /* arg1 */,
                        const XObjectPtr                /* arg2 */,
                        const XObjectPtr                /* arg3 */)
  @@ -155,11 +155,18 @@
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
                        int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  +     if (args.size() != 2)
  +     {
  +             executionContext.error(getError(), context);
   
  -     return XObjectPtr(0);
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0], args[1]);
  +     }
   }
   
   
  @@ -179,6 +186,5 @@
   const XalanDOMString
   FunctionDifference::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The difference() function takes two arguments!");
  +     return XALAN_STATIC_UCODE_STRING("The difference() function takes two 
arguments");
   }
  
  
  
  1.2       +12 -6     xml-xalan/c/src/XalanExtensions/FunctionDistinct.cpp
  
  Index: FunctionDistinct.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionDistinct.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionDistinct.cpp      2001/06/14 19:31:32     1.1
  +++ FunctionDistinct.cpp      2001/07/18 04:20:35     1.2
  @@ -186,11 +186,18 @@
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
                        int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  -
  -     return XObjectPtr(0);
  +     if (args.size() != 1)
  +     {
  +             executionContext.error(getError(), context);
  +
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0]);
  +     }
   }
   
   
  @@ -210,6 +217,5 @@
   const XalanDOMString
   FunctionDistinct::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The distinct() function takes one argument!");
  +     return XALAN_STATIC_UCODE_STRING("The distinct() function takes one 
argument");
   }
  
  
  
  1.2       +12 -6     xml-xalan/c/src/XalanExtensions/FunctionEvaluate.cpp
  
  Index: FunctionEvaluate.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionEvaluate.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionEvaluate.cpp      2001/06/14 19:31:32     1.1
  +++ FunctionEvaluate.cpp      2001/07/18 04:20:35     1.2
  @@ -169,11 +169,18 @@
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
                        int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  -
  -     return XObjectPtr(0);
  +     if (args.size() != 1)
  +     {
  +             executionContext.error(getError(), context);
  +
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0]);
  +     }
   }
   
   
  @@ -193,6 +200,5 @@
   const XalanDOMString
   FunctionEvaluate::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The evaluate() function takes one argument!");
  +     return XALAN_STATIC_UCODE_STRING("The evaluate() function takes one 
argument");
   }
  
  
  
  1.2       +13 -7     xml-xalan/c/src/XalanExtensions/FunctionHasSameNodes.cpp
  
  Index: FunctionHasSameNodes.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionHasSameNodes.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionHasSameNodes.cpp  2001/06/14 19:31:32     1.1
  +++ FunctionHasSameNodes.cpp  2001/07/18 04:20:35     1.2
  @@ -90,7 +90,7 @@
   XObjectPtr
   FunctionHasSameNodes::execute(
                XPathExecutionContext&  executionContext,
  -             XalanNode*                              context,                
        
  +             XalanNode*                              context,
                const XObjectPtr                arg1)
   {
        executionContext.error(getError(), context);
  @@ -140,7 +140,7 @@
   XObjectPtr
   FunctionHasSameNodes::execute(
                        XPathExecutionContext&  executionContext,
  -                     XalanNode*                              context,        
                
  +                     XalanNode*                              context,
                        const XObjectPtr                /* arg1 */,
                        const XObjectPtr                /* arg2 */,
                        const XObjectPtr                /* arg3 */)
  @@ -157,11 +157,18 @@
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
                        int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  +     if (args.size() != 2)
  +     {
  +             executionContext.error(getError(), context);
   
  -     return XObjectPtr(0);
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0], args[1]);
  +     }
   }
   
   
  @@ -181,6 +188,5 @@
   const XalanDOMString
   FunctionHasSameNodes::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The has-same-nodes() function takes two arguments!");
  +     return XALAN_STATIC_UCODE_STRING("The has-same-nodes() function 
requires two arguments");
   }
  
  
  
  1.2       +12 -6     xml-xalan/c/src/XalanExtensions/FunctionIntersection.cpp
  
  Index: FunctionIntersection.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionIntersection.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionIntersection.cpp  2001/06/14 19:31:32     1.1
  +++ FunctionIntersection.cpp  2001/07/18 04:20:35     1.2
  @@ -152,11 +152,18 @@
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
                        int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  -
  -     return XObjectPtr(0);
  +     if (args.size() != 2)
  +     {
  +             executionContext.error(getError(), context);
  +
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0], args[1]);
  +     }
   }
   
   
  @@ -176,6 +183,5 @@
   const XalanDOMString
   FunctionIntersection::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The intersection() function takes two arguments!");
  +     return XALAN_STATIC_UCODE_STRING("The intersection() function takes two 
arguments");
   }
  
  
  
  1.2       +17 -11    xml-xalan/c/src/XalanExtensions/FunctionNodeSet.cpp
  
  Index: FunctionNodeSet.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionNodeSet.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionNodeSet.cpp       2001/06/14 19:31:32     1.1
  +++ FunctionNodeSet.cpp       2001/07/18 04:20:35     1.2
  @@ -157,11 +157,11 @@
   
   XObjectPtr
   FunctionNodeSet::execute(
  -             XPathExecutionContext&  executionContext,
  -             XalanNode*                              /* context */,          
        
  +             XPathExecutionContext&  /* executionContext */,
  +             XalanNode*                              /* context */,
                const XObjectPtr                arg1)
   {
  -     assert(arg1.null() == false);   
  +     assert(arg1.null() == false);
   
        if (arg1->getType() != XObject::eTypeResultTreeFrag)
        {
  @@ -178,7 +178,7 @@
   XObjectPtr
   FunctionNodeSet::execute(
                        XPathExecutionContext&  executionContext,
  -                     XalanNode*                              context,        
                
  +                     XalanNode*                              context,
                        const XObjectPtr                /* arg1 */,
                        const XObjectPtr                /* arg2 */)
   {
  @@ -192,7 +192,7 @@
   XObjectPtr
   FunctionNodeSet::execute(
                        XPathExecutionContext&  executionContext,
  -                     XalanNode*                              context,        
                
  +                     XalanNode*                              context,
                        const XObjectPtr                /* arg1 */,
                        const XObjectPtr                /* arg2 */,
                        const XObjectPtr                /* arg3 */)
  @@ -208,12 +208,19 @@
   FunctionNodeSet::execute(
                        XPathExecutionContext&                  
executionContext,
                        XalanNode*                                              
context,
  -                     int                                                     
        /* opPos */,
  -                     const XObjectArgVectorType&             /* args */)
  +                     int                                                     
        opPos,
  +                     const XObjectArgVectorType&             args)
   {
  -     executionContext.error(getError(), context);
  +     if (args.size() != 1)
  +     {
  +             executionContext.error(getError(), context);
   
  -     return XObjectPtr(0);
  +             return XObjectPtr(0);
  +     }
  +     else
  +     {
  +             return execute(executionContext, context, args[0]);
  +     }
   }
   
   
  @@ -233,6 +240,5 @@
   const XalanDOMString
   FunctionNodeSet::getError() const
   {
  -     return XALAN_STATIC_UCODE_STRING(
  -             "The node-set() function takes one argument!");
  +     return XALAN_STATIC_UCODE_STRING("The node-set() function takes one 
argument");
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to