richter     01/11/27 00:37:56

  Modified:    .        Tag: Embperl2c Changes.pod Embperl.pm Makefile.PL
               Embperl  Tag: Embperl2c Recipe.pm
               Embperl/Recipe Tag: Embperl2c Embperl.pm EmbperlLibXSLT.pm
                        EmbperlXSLT.pm EmbperlXalanXSLT.pm LibXSLT.pm
                        XSLT.pm XalanXSLT.pm
               driver   Tag: Embperl2c eplibxslt.c epxalan.cpp
               test/conf Tag: Embperl2c httpd.conf.src
  Log:
     - Add xsltparam parameter which takes a hashref and is used to
       pass parameters to the xslt processor. If not given defaults
       to %fdat.
     - Fixed memory leak which occured when using libxslt.
     - Fixed MakeMaker problem with Perl 5.7.1.
     - Removed some uninitialized value warnings.
     - Added "make start" and "make stop" to start and stop test httpd
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.129.4.41 +7 -0      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.129.4.40
  retrieving revision 1.129.4.41
  diff -u -r1.129.4.40 -r1.129.4.41
  --- Changes.pod       2001/11/25 19:48:10     1.129.4.40
  +++ Changes.pod       2001/11/27 08:37:55     1.129.4.41
  @@ -2,6 +2,9 @@
   
   =head1 2.0b5
   
  +   - Add xsltparam parameter which takes a hashref and is used to
  +     pass parameters to the xslt processor. If not given defaults
  +     to %fdat.
      - Add require URI::URL to test.pl so make test work with newer LWP.
        Patch from Jonathan Stowe.
      - Fixed problem in registry/tied test, which failed for some Apache
  @@ -17,6 +20,10 @@
        multiple pages in the same package.
      - Fixed problem with reloading when file changed, which sometimes
        didn't reload correctly in 2.0b4
  +   - Fixed memory leak which occured when using libxslt.
  +   - Fixed MakeMaker problem with Perl 5.7.1.
  +   - Removed some uninitialized value warnings.
  +   - Added "make start" and "make stop" to start and stop test httpd
   
   =head1 2.0b4 (BETA) 20. Nov. 2001
   
  
  
  
  1.118.4.64 +2 -2      embperl/Embperl.pm
  
  Index: Embperl.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pm,v
  retrieving revision 1.118.4.63
  retrieving revision 1.118.4.64
  diff -u -r1.118.4.63 -r1.118.4.64
  --- Embperl.pm        2001/11/22 12:12:37     1.118.4.63
  +++ Embperl.pm        2001/11/27 08:37:55     1.118.4.64
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Embperl.pm,v 1.118.4.63 2001/11/22 12:12:37 richter Exp $
  +#   $Id: Embperl.pm,v 1.118.4.64 2001/11/27 08:37:55 richter Exp $
   #
   ###################################################################################
   
  @@ -69,7 +69,7 @@
   
   
   ##ep2##
  -$VERSION = '2.0b5_dev-1' ;
  +$VERSION = '2.0b5_dev-2' ;
   ##/ep2##
   ##ep1##$VERSION = '1.3.4_dev';
   
  
  
  
  1.31.4.36 +11 -2     embperl/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/embperl/Makefile.PL,v
  retrieving revision 1.31.4.35
  retrieving revision 1.31.4.36
  diff -u -r1.31.4.35 -r1.31.4.36
  --- Makefile.PL       2001/11/12 12:45:39     1.31.4.35
  +++ Makefile.PL       2001/11/27 08:37:55     1.31.4.36
  @@ -3,7 +3,7 @@
   #
   # (C) 1997-2001 G.Richter ([EMAIL PROTECTED]) / ECOS
   #
  -# $Id: Makefile.PL,v 1.31.4.35 2001/11/12 12:45:39 richter Exp $
  +# $Id: Makefile.PL,v 1.31.4.36 2001/11/27 08:37:55 richter Exp $
   #
   
   
  @@ -134,7 +134,13 @@
   testgdbb : testdbbreak
   \tPERL_DL_NONLAZY=0 gdb -x dbinitembperl \$(FULLPERL)  
   
  +start : pure_all
  +\tPERL_DL_NONLAZY=0 \$(FULLPERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) 
-I\$(PERL_ARCHLIB) -I\$(PERL_LIB) \$(TEST_FILE) --start -m \$(TESTARGS)
   
  +stop : pure_all
  +\tPERL_DL_NONLAZY=0 \$(FULLPERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) 
-I\$(PERL_ARCHLIB) -I\$(PERL_LIB) \$(TEST_FILE) --kill -m \$(TESTARGS)
  +
  +
   } ;
   
        $txt =~ s/\r\n/\n/g ;  # make doesn't like \r\n!
  @@ -209,12 +215,15 @@
           return $txt ;
        }
   
  +$MY::cccmd_seen = 0 ;
   sub MY::const_cccmd 
        {
        my $self = shift ;
           
           my $txt = $self -> MM::const_cccmd (@_) ;
  -        my $txt2 = $txt ;
  +        return $txt if ($MY::cccmd_seen++) ;
  +
  +     my $txt2 = $txt ;
           $txt2 =~ s/\$\(CC\)/\$(CPP)/ ;
           $txt2 =~ s/CCCMD/CPPCMD/ ;
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.8   +9 -1      embperl/Embperl/Attic/Recipe.pm
  
  Index: Recipe.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Attic/Recipe.pm,v
  retrieving revision 1.1.2.7
  retrieving revision 1.1.2.8
  diff -u -r1.1.2.7 -r1.1.2.8
  --- Recipe.pm 2001/11/20 15:15:42     1.1.2.7
  +++ Recipe.pm 2001/11/27 08:37:56     1.1.2.8
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Recipe.pm,v 1.1.2.7 2001/11/20 15:15:42 richter Exp $
  +#   $Id: Recipe.pm,v 1.1.2.8 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -291,6 +291,10 @@
   
   Gives the compiled stylesheet source 
   
  +=item param
  +
  +Gives the parameters as hash ref
  +
   =back
   
   
  @@ -340,6 +344,10 @@
   =item stylesheet
   
   Gives the compiled stylesheet source 
  +
  +=item param
  +
  +Gives the parameters as hash ref
   
   =back
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.8   +2 -1      embperl/Embperl/Recipe/Attic/Embperl.pm
  
  Index: Embperl.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/Embperl.pm,v
  retrieving revision 1.1.2.7
  retrieving revision 1.1.2.8
  diff -u -r1.1.2.7 -r1.1.2.8
  --- Embperl.pm        2001/11/25 19:48:11     1.1.2.7
  +++ Embperl.pm        2001/11/27 08:37:56     1.1.2.8
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Embperl.pm,v 1.1.2.7 2001/11/25 19:48:11 richter Exp $
  +#   $Id: Embperl.pm,v 1.1.2.8 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -117,3 +117,4 @@
       return $self ;
       }
   
  +1;
  
  
  
  1.1.2.3   +2 -1      embperl/Embperl/Recipe/Attic/EmbperlLibXSLT.pm
  
  Index: EmbperlLibXSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/EmbperlLibXSLT.pm,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- EmbperlLibXSLT.pm 2001/11/16 08:08:08     1.1.2.2
  +++ EmbperlLibXSLT.pm 2001/11/27 08:37:56     1.1.2.3
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: EmbperlLibXSLT.pm,v 1.1.2.2 2001/11/16 08:08:08 richter Exp $
  +#   $Id: EmbperlLibXSLT.pm,v 1.1.2.3 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -42,3 +42,4 @@
       }
   
   
  +1 ;
  \ No newline at end of file
  
  
  
  1.1.2.4   +2 -1      embperl/Embperl/Recipe/Attic/EmbperlXSLT.pm
  
  Index: EmbperlXSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/EmbperlXSLT.pm,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- EmbperlXSLT.pm    2001/11/25 19:48:11     1.1.2.3
  +++ EmbperlXSLT.pm    2001/11/27 08:37:56     1.1.2.4
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: EmbperlXSLT.pm,v 1.1.2.3 2001/11/25 19:48:11 richter Exp $
  +#   $Id: EmbperlXSLT.pm,v 1.1.2.4 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -98,3 +98,4 @@
       return $self ;
       }
   
  +1 ;
  
  
  
  1.1.2.3   +2 -1      embperl/Embperl/Recipe/Attic/EmbperlXalanXSLT.pm
  
  Index: EmbperlXalanXSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/EmbperlXalanXSLT.pm,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- EmbperlXalanXSLT.pm       2001/11/16 08:08:08     1.1.2.2
  +++ EmbperlXalanXSLT.pm       2001/11/27 08:37:56     1.1.2.3
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: EmbperlXalanXSLT.pm,v 1.1.2.2 2001/11/16 08:08:08 richter Exp $
  +#   $Id: EmbperlXalanXSLT.pm,v 1.1.2.3 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -42,3 +42,4 @@
       }
   
   
  +1 ;
  
  
  
  1.1.2.2   +2 -1      embperl/Embperl/Recipe/Attic/LibXSLT.pm
  
  Index: LibXSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/LibXSLT.pm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- LibXSLT.pm        2001/11/16 11:55:32     1.1.2.1
  +++ LibXSLT.pm        2001/11/27 08:37:56     1.1.2.2
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: LibXSLT.pm,v 1.1.2.1 2001/11/16 11:55:32 richter Exp $
  +#   $Id: LibXSLT.pm,v 1.1.2.2 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -42,3 +42,4 @@
       }
   
   
  +1 ;
  
  
  
  1.1.2.4   +2 -1      embperl/Embperl/Recipe/Attic/XSLT.pm
  
  Index: XSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/XSLT.pm,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- XSLT.pm   2001/11/25 19:48:11     1.1.2.3
  +++ XSLT.pm   2001/11/27 08:37:56     1.1.2.4
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: XSLT.pm,v 1.1.2.3 2001/11/25 19:48:11 richter Exp $
  +#   $Id: XSLT.pm,v 1.1.2.4 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -122,3 +122,4 @@
       return $self ;
       }
   
  +1 ;
  \ No newline at end of file
  
  
  
  1.1.2.2   +2 -1      embperl/Embperl/Recipe/Attic/XalanXSLT.pm
  
  Index: XalanXSLT.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Recipe/Attic/XalanXSLT.pm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- XalanXSLT.pm      2001/11/16 11:55:32     1.1.2.1
  +++ XalanXSLT.pm      2001/11/27 08:37:56     1.1.2.2
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: XalanXSLT.pm,v 1.1.2.1 2001/11/16 11:55:32 richter Exp $
  +#   $Id: XalanXSLT.pm,v 1.1.2.2 2001/11/27 08:37:56 richter Exp $
   #
   ###################################################################################
    
  @@ -42,3 +42,4 @@
       }
   
   
  +1 ;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.10  +22 -22    embperl/driver/Attic/eplibxslt.c
  
  Index: eplibxslt.c
  ===================================================================
  RCS file: /home/cvs/embperl/driver/Attic/eplibxslt.c,v
  retrieving revision 1.1.2.9
  retrieving revision 1.1.2.10
  diff -u -r1.1.2.9 -r1.1.2.10
  --- eplibxslt.c       2001/11/25 19:48:11     1.1.2.9
  +++ eplibxslt.c       2001/11/27 08:37:56     1.1.2.10
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: eplibxslt.c,v 1.1.2.9 2001/11/25 19:48:11 richter Exp $
  +#   $Id: eplibxslt.c,v 1.1.2.10 2001/11/27 08:37:56 richter Exp $
   #
   
###################################################################################*/
   
  @@ -164,7 +164,6 @@
   typedef struct tProviderLibXSLTXSL
       {
       tProvider           Provider ;
  -    xmlDocPtr                pXMLDoc ;
       } tProviderLibXSLTXSL ;
   
   
  @@ -328,14 +327,12 @@
        
       if ((cur = xsltParseStylesheetDoc(doc)) == NULL)
                {
  -     ((tProviderLibXSLTXSL *)pProvider) -> pXMLDoc = NULL ;
           xmlFreeDoc(doc) ;
        Cache_ReleaseContent (r, pFileCache) ;
           strncpy (r -> errdat1, "XSL compile", sizeof (r -> errdat1)) ;
        return rcLibXSLTError ;
        }
       
  -    ((tProviderLibXSLTXSL *)pProvider) -> pXMLDoc = doc ;
       *pData = (void *)cur ;
   
       return ok ;
  @@ -370,20 +367,12 @@
                                    /*in*/ tCacheItem * pItem)
   
       {
  -    xsltStylesheetPtr  pCompiledStylesheet = (xsltStylesheetPtr)pItem -> pData ;
  +    xsltStylesheetPtr  pCompiledStylesheet ;
  +    
  +    pCompiledStylesheet = (xsltStylesheetPtr)pItem -> pData ;
       if (pCompiledStylesheet)
           xsltFreeStylesheet(pCompiledStylesheet) ;
   
  -    if (((tProviderLibXSLTXSL *)pItem -> pProvider) -> pXMLDoc)
  -        {
  -        /*
  -        lprintf (r, "free doc %x\n", ((tProviderLibXSLTXSL *)pItem -> pProvider) -> 
pXMLDoc) ;
  -        xmlFreeDoc (((tProviderLibXSLTXSL *)pItem -> pProvider) -> pXMLDoc) ;
  -        */
  -        }
  -
  -    ((tProviderLibXSLTXSL *)pItem -> pProvider) -> pXMLDoc = NULL ;
  -    
   
       return ok ;
       }
  @@ -603,8 +592,9 @@
   
       {
       if (pItem -> pData)
  +     {
        xmlFreeDoc((xmlDocPtr)pItem -> pData) ;
  -
  +     }
       return ok ;
       }
   
  @@ -893,7 +883,7 @@
       if (((tProviderLibXSLT *)pProvider) -> pOutputSV)
           SvREFCNT_dec (((tProviderLibXSLT *)pProvider) -> pOutputSV) ;
   
  -    ((tProviderLibXSLT *)pProvider) -> pOutputSV = newSV(1024) ;
  +    ((tProviderLibXSLT *)pProvider) -> pOutputSV = newSVpv("", 0) ;
   
       res = xsltApplyStylesheet(cur, doc, ((tProviderLibXSLT *)pProvider) -> 
pParamArray);
       if(res == NULL)
  @@ -907,10 +897,11 @@
       xsltSaveResultTo(obuf, res, cur);
   
       xmlFreeDoc(res);
  +    xmlOutputBufferClose (obuf) ;
   
       *pData = ((tProviderLibXSLT *)pProvider) -> pOutputSV ;
  +    SvREFCNT_inc(*pData) ;
   
  -
       return ok ;
       }
   
  @@ -943,11 +934,20 @@
                                    /*in*/ tCacheItem * pItem)
   
       {
  -    if (((tProviderLibXSLT *)pItem -> pProvider) -> pOutputSV)
  -        SvREFCNT_dec (((tProviderLibXSLT *)pItem -> pProvider) -> pOutputSV) ;
  -
  -    ((tProviderLibXSLT *)pItem -> pProvider) -> pOutputSV = NULL ;
  +    tProviderLibXSLT * pProvider = ((tProviderLibXSLT *)pItem -> pProvider) ;
  +    
  +    if (pProvider -> pOutputSV)
  +     {
  +     SvREFCNT_dec (pProvider -> pOutputSV) ;
  +     pProvider -> pOutputSV = NULL ;
  +     }
       
  +    if (pProvider -> pParamArray)
  +     {
  +     free (pProvider -> pParamArray) ;
  +     pProvider -> pParamArray = NULL ;
  +     }
  +
       return ok ;
       }
   
  
  
  
  1.1.2.13  +89 -8     embperl/driver/Attic/epxalan.cpp
  
  Index: epxalan.cpp
  ===================================================================
  RCS file: /home/cvs/embperl/driver/Attic/epxalan.cpp,v
  retrieving revision 1.1.2.12
  retrieving revision 1.1.2.13
  diff -u -r1.1.2.12 -r1.1.2.13
  --- epxalan.cpp       2001/11/16 12:43:38     1.1.2.12
  +++ epxalan.cpp       2001/11/27 08:37:56     1.1.2.13
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epxalan.cpp,v 1.1.2.12 2001/11/16 12:43:38 richter Exp $
  +#   $Id: epxalan.cpp,v 1.1.2.13 2001/11/27 08:37:56 richter Exp $
   #
   
###################################################################################*/
   
  @@ -21,10 +21,13 @@
   #include "../epmacro.h"
   }
   
  +/* undef some defines that clashs with c++ includes */
   #undef bool
   #undef HAS_BOOL
   #undef assert
  +#undef vform
   
  +
   #include <Include/PlatformDefinitions.hpp>
   
   #if defined(XALAN_OLD_STREAM_HEADERS)
  @@ -680,6 +683,7 @@
       {
       tProvider           Provider ;
       SV *                pOutputSV ;
  +    HV *                pParamHV ;
       } tProviderXalan ;
   
   
  @@ -784,6 +788,59 @@
       return ok ;
       }
   
  +
  +/* ------------------------------------------------------------------------ */
  +/*                                                                          */
  +/* ProviderLibXalan_UpdateParam                                          */
  +/*                                                                          */
  +/*! 
  +*   \_en
  +*   Update the parameter of the provider
  +*   
  +*   @param  r               Embperl request record
  +*   @param  pProvider       Provider record
  +*   @param  pParam          Parameter Hash
  +*                               param        hash with parameter 
  +*   @param  pKey            Key to which string should be appended
  +*   @return                 error code
  +*   \endif                                                                       
  +*
  +*   \_de                                                                        
  +*   Aktualisiert die Parameter des Providers
  +*   
  +*   @param  r               Embperl request record
  +*   @param  pProvider       Provider record
  +*   @param  pParam          Parameter Hash
  +*                               param        hash mit parametern 
  +*   @param  pKey            Schl�ssel zu welchem hinzugef�gt wird
  +*   @return                 Fehlercode
  +*   \endif                                                                       
  +*                                                                          
  +* ------------------------------------------------------------------------ */
  +
  +static int ProviderXalan_UpdateParam(/*in*/ req *              r,
  +                                   /*in*/ tProvider *        pProvider,
  +                                   /*in*/ HV *               pParam)
  +    {
  +    int                  rc ;
  +    HV *         pParamHV ;
  +    
  +    if ((rc = GetHashValueHREF  (r, pParam, "param", &pParamHV)) != ok)
  +        {
  +        if (!r->errdat1[0])
  +            strncpy (r -> errdat1, pProvider -> pCache -> sKey, sizeof (r -> 
errdat1) -1 ) ;
  +        return rc ;
  +        }
  +
  +    if (((tProviderXalan *)pProvider) -> pParamHV)
  +     SvREFCNT_dec (((tProviderXalan *)pProvider) -> pParamHV) ;
  +
  +    ((tProviderXalan *)pProvider) -> pParamHV = pParamHV ;
  +    SvREFCNT_inc (((tProviderXalan *)pProvider) -> pParamHV) ;
  +
  +    return ok ;
  +    }
  +
   /* ------------------------------------------------------------------------ */
   /*                                                                          */
   /* ProviderXalan_iowrite                                                    */
  @@ -839,7 +896,12 @@
       int    rc ;
       XalanParsedSource *       parsedXML ;
       XalanCompiledStylesheet * pCompiledXSL ;
  -    
  +    HV *         pParamHV ;
  +    HE *         pEntry ;
  +    char *       pKey ;
  +    SV *            pValue ;
  +    IV                   l ;    
  +    STRLEN       len ;    
       
       tCacheItem * pSrcCache = Cache_GetDependency(r, pProvider -> pCache, 0) ;
       tCacheItem * pXSLCache = Cache_GetDependency(r, pProvider -> pCache, 1) ;
  @@ -852,9 +914,21 @@
   
       if (((tProviderXalan *)pProvider) -> pOutputSV)
           SvREFCNT_dec (((tProviderXalan *)pProvider) -> pOutputSV) ;
  +
  +    ((tProviderXalan *)pProvider) -> pOutputSV = newSVpv("",0) ;
   
  -    ((tProviderXalan *)pProvider) -> pOutputSV = newSV(1024) ;
  +    pParamHV = ((tProviderXalan *)pProvider) -> pParamHV  ;
   
  +    if (pParamHV)
  +     {
  +     hv_iterinit (pParamHV) ;
  +     while ((pEntry = hv_iternext (pParamHV)))
  +         {
  +         pKey     = hv_iterkey (pEntry, &l) ;
  +         pValue   = hv_iterval (pParamHV, pEntry) ;
  +         theXalanTransformer -> setStylesheetParam (XalanDOMString(pKey), 
XalanDOMString(SvPV(pValue, len))) ;
  +         }
  +     }
      
       // Do the transform.
       int theResult = theXalanTransformer -> transform(*parsedXML, pCompiledXSL, 
pProvider, ProviderXalan_iowrite, NULL);
  @@ -867,7 +941,7 @@
        }
   
       *pData = ((tProviderXalan *)pProvider) -> pOutputSV ;
  -
  +    SvREFCNT_inc(*pData) ;
   
       return ok ;
       }
  @@ -901,11 +975,18 @@
                                    /*in*/ tCacheItem * pItem)
   
       {
  -    if (((tProviderXalan *)pItem -> pProvider) -> pOutputSV)
  -        SvREFCNT_dec (((tProviderXalan *)pItem -> pProvider) -> pOutputSV) ;
  +    tProviderXalan * pProvider = ((tProviderXalan *)pItem -> pProvider) ;
  +
  +    if (pProvider -> pOutputSV)
  +        SvREFCNT_dec (pProvider -> pOutputSV) ;
   
  -    ((tProviderXalan *)pItem -> pProvider) -> pOutputSV = NULL ;
  +    pProvider -> pOutputSV = NULL ;
       
  +    if (pProvider -> pParamHV)
  +     SvREFCNT_dec (pProvider -> pParamHV) ;
  +
  +    pProvider -> pParamHV = NULL ;
  +
       return ok ;
       }
   
  @@ -916,7 +997,7 @@
       "text/*", 
       &ProviderXalan_New, 
       &ProviderXalan_AppendKey, 
  -    NULL,
  +    &ProviderXalan_UpdateParam, 
       &ProviderXalan_GetContentSV,
       NULL,
       NULL,
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.24.4.27 +30 -5     embperl/test/conf/httpd.conf.src
  
  Index: httpd.conf.src
  ===================================================================
  RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
  retrieving revision 1.24.4.26
  retrieving revision 1.24.4.27
  diff -u -r1.24.4.26 -r1.24.4.27
  --- httpd.conf.src    2001/11/25 19:48:11     1.24.4.26
  +++ httpd.conf.src    2001/11/27 08:37:56     1.24.4.27
  @@ -17,9 +17,9 @@
   Group $EPGROUP
   
   MinSpareServers 1
  -MaxSpareServers 2
  -StartServers 2
  -MaxClients 2
  +MaxSpareServers 30
  +StartServers 3
  +MaxClients 10
   MaxRequestsPerChild 0
   
   
  @@ -45,7 +45,7 @@
   $EPSTRONGHOLDKEY
   
   #-Tw
  -PerlTaintCheck On
  +######PerlTaintCheck On
   PerlWarn On
   
   
  @@ -463,8 +463,14 @@
   <Location /cgi-bin/pod/>
   SetEnv EMBPERL_SYNTAX POD
   </Location>
  -
  +
  +#
  +# Configuration for example access
  +#
   
  +<Location /eg>
  +SetEnv EMBPERL_XSLTPROC libxslt
  +</Location>
   
   <Location /eg/x>
   SetHandler perl-script
  @@ -472,6 +478,16 @@
   Options ExecCGI
   </Location>
   
  +
  +<Location /eg/web>
  +PerlSetEnv EMBPERL_OBJECT_BASE base.htm
  +PerlSetEnv EMBPERL_OBJECT_STOPDIR \"$EPPATH/eg/web\"
  +PerlSetEnv EMBPERL_FILESMATCH \"\\.htm.?\$|\\.epl\$|\\.xml\$\"
  +SetHandler perl-script
  +PerlHandler HTML::EmbperlObject 
  +Options ExecCGI
  +</Location>
  +
   <Location /eg/xml>
   SetHandler perl-script
   PerlHandler HTML::Embperl
  @@ -492,6 +508,15 @@
   <LocationMatch \"libxslt\$\">
   SetEnv EMBPERL_RECIPE LibXSLT
   </LocationMatch>
  +
  +<Location /eg/images/aim>
  +PerlSetVar AIMParameter \"pointsize=14 font=$EPPATH/../fonts/OCRAEXT.ttf\"
  +#PerlSetVar AIMParameter \"pointsize=14 gravity=left 
font=$EPPATH/../fonts/OCRAEXT.ttf\"
  +PerlSetVar AIMCacheDir  \"$EPPATH/eg/images/aim/cache\"
  +PerlSetVar AIMDebug 1
  +PerlFixupHandler Apache::ImageMagick
  +</location>
  +
   
   <Location /mp>
   SetHandler perl-script
  
  
  

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

Reply via email to