jasons      2002/08/27 12:38:32

  Modified:    perl/Handler PerlContentCallbackHandler.cpp
                        PerlContentCallbackHandler.hpp
                        PerlDocumentCallbackHandler.cpp
                        PerlDocumentCallbackHandler.hpp
                        PerlEntityResolverHandler.hpp
                        PerlEntityResolverHandler.i
                        PerlErrorCallbackHandler.cpp
                        PerlErrorCallbackHandler.hpp
                        PerlNodeFilterCallbackHandler.hpp
                        PerlNodeFilterCallbackHandler.i
  Log:
        * Handler/PerlNodeFilterCallbackHandler.i (Repository):
        * Handler/PerlErrorCallbackHandler.cpp (Repository):
        * Handler/PerlEntityResolverHandler.i (Repository):
        * Handler/PerlDocumentCallbackHandler.cpp (Repository):
        * Handler/PerlContentCallbackHandler.cpp (Repository):
        moved common code out of base class and into derived classes
        refcount decrementing bug fixed??
  
  Revision  Changes    Path
  1.5       +21 -1     xml-xerces/perl/Handler/PerlContentCallbackHandler.cpp
  
  Index: PerlContentCallbackHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlContentCallbackHandler.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PerlContentCallbackHandler.cpp    28 Mar 2002 07:48:51 -0000      1.4
  +++ PerlContentCallbackHandler.cpp    27 Aug 2002 19:38:31 -0000      1.5
  @@ -1,12 +1,32 @@
   #include <stdlib.h>
   #include "PerlContentCallbackHandler.hpp"
   
  +PerlContentCallbackHandler::PerlContentCallbackHandler()
  +{
  +    callbackObj = NULL;
  +}
  +
  +PerlContentCallbackHandler::~PerlContentCallbackHandler()
  +{
  +    if (callbackObj != NULL) {
  +     SvREFCNT_dec(callbackObj);
  +     callbackObj = NULL;
  +    }
  +}
  +
  +PerlContentCallbackHandler::PerlContentCallbackHandler(SV *obj)
  +{
  +    set_callback_obj(obj);
  +}
  +
   SV*
   PerlContentCallbackHandler::set_callback_obj(SV* object) {
       SV *oldRef = &PL_sv_undef;       // default to 'undef'
       if (callbackObj != NULL) {
        oldRef = callbackObj;
  -     SvREFCNT_dec(oldRef);
  +#if defined(PERL_VERSION) && PERL_VERSION >= 8
  +//   SvREFCNT_dec(oldRef);
  +#endif
       }
       SvREFCNT_inc(object);
       callbackObj = object;
  
  
  
  1.4       +5 -5      xml-xerces/perl/Handler/PerlContentCallbackHandler.hpp
  
  Index: PerlContentCallbackHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlContentCallbackHandler.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PerlContentCallbackHandler.hpp    28 Mar 2002 07:48:51 -0000      1.3
  +++ PerlContentCallbackHandler.hpp    27 Aug 2002 19:38:31 -0000      1.4
  @@ -5,17 +5,17 @@
   #include "xercesc/sax2/ContentHandler.hpp"
   #include "xercesc/util/XMLString.hpp"
   class PerlContentCallbackHandler : public ContentHandler
  -                              , public PerlCallbackHandler 
  +//                            , public PerlCallbackHandler 
   {
   
   protected:
  -//    SV *callbackObj;
  +    SV *callbackObj;
   
   public:
   
  -    PerlContentCallbackHandler() {};
  -    PerlContentCallbackHandler(SV *obj) : PerlCallbackHandler(obj){};
  -    ~PerlContentCallbackHandler() {};
  +    PerlContentCallbackHandler();
  +    PerlContentCallbackHandler(SV *obj);
  +    ~PerlContentCallbackHandler();
   
       SV* set_callback_obj(SV*);
   
  
  
  
  1.5       +21 -1     xml-xerces/perl/Handler/PerlDocumentCallbackHandler.cpp
  
  Index: PerlDocumentCallbackHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlDocumentCallbackHandler.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PerlDocumentCallbackHandler.cpp   28 Mar 2002 07:48:51 -0000      1.4
  +++ PerlDocumentCallbackHandler.cpp   27 Aug 2002 19:38:31 -0000      1.5
  @@ -1,12 +1,32 @@
   #include <stdlib.h>
   #include "PerlDocumentCallbackHandler.hpp"
   
  +PerlDocumentCallbackHandler::PerlDocumentCallbackHandler()
  +{
  +    callbackObj = NULL;
  +}
  +
  +PerlDocumentCallbackHandler::~PerlDocumentCallbackHandler()
  +{
  +    if (callbackObj != NULL) {
  +     SvREFCNT_dec(callbackObj);
  +     callbackObj = NULL;
  +    }
  +}
  +
  +PerlDocumentCallbackHandler::PerlDocumentCallbackHandler(SV *obj)
  +{
  +    set_callback_obj(obj);
  +}
  +
   SV*
   PerlDocumentCallbackHandler::set_callback_obj(SV* object) {
       SV *oldRef = &PL_sv_undef;       // default to 'undef'
       if (callbackObj != NULL) {
        oldRef = callbackObj;
  -     SvREFCNT_dec(oldRef);
  +#if defined(PERL_VERSION) && PERL_VERSION >= 8
  +//   SvREFCNT_dec(oldRef);
  +#endif
       }
       SvREFCNT_inc(object);
       callbackObj = object;
  
  
  
  1.4       +5 -5      xml-xerces/perl/Handler/PerlDocumentCallbackHandler.hpp
  
  Index: PerlDocumentCallbackHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlDocumentCallbackHandler.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PerlDocumentCallbackHandler.hpp   28 Mar 2002 07:48:51 -0000      1.3
  +++ PerlDocumentCallbackHandler.hpp   27 Aug 2002 19:38:31 -0000      1.4
  @@ -5,17 +5,17 @@
   #include "xercesc/sax/DocumentHandler.hpp"
   #include "xercesc/util/XMLString.hpp"
   class PerlDocumentCallbackHandler : public DocumentHandler
  -                               , public  PerlCallbackHandler 
  +//                             , public  PerlCallbackHandler 
   {
   
   protected:
  -//    SV *callbackObj;
  +    SV *callbackObj;
   
   public:
   
  -    PerlDocumentCallbackHandler() {};
  -    PerlDocumentCallbackHandler(SV *obj) : PerlCallbackHandler(obj){};
  -    ~PerlDocumentCallbackHandler() {};
  +    PerlDocumentCallbackHandler();
  +    PerlDocumentCallbackHandler(SV *obj);
  +    ~PerlDocumentCallbackHandler();
   
       SV* set_callback_obj(SV*);
   
  
  
  
  1.4       +5 -5      xml-xerces/perl/Handler/PerlEntityResolverHandler.hpp
  
  Index: PerlEntityResolverHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlEntityResolverHandler.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PerlEntityResolverHandler.hpp     28 Mar 2002 07:48:51 -0000      1.3
  +++ PerlEntityResolverHandler.hpp     27 Aug 2002 19:38:31 -0000      1.4
  @@ -7,17 +7,17 @@
   
   class InputSource;
   class PerlEntityResolverHandler: public EntityResolver
  -                            , public  PerlCallbackHandler
  +//                          , public  PerlCallbackHandler
    {
   
   protected:
  -//    SV *callbackObj;
  +    SV *callbackObj;
   
   public:
   
  -    PerlEntityResolverHandler() {};
  -    PerlEntityResolverHandler(SV *obj) : PerlCallbackHandler(obj) {};
  -    ~PerlEntityResolverHandler() {};
  +    PerlEntityResolverHandler();
  +    PerlEntityResolverHandler(SV *obj);
  +    ~PerlEntityResolverHandler();
   
       SV* set_callback_obj(SV*);
   
  
  
  
  1.6       +29 -2     xml-xerces/perl/Handler/PerlEntityResolverHandler.i
  
  Index: PerlEntityResolverHandler.i
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlEntityResolverHandler.i,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PerlEntityResolverHandler.i       28 Mar 2002 07:48:51 -0000      1.5
  +++ PerlEntityResolverHandler.i       27 Aug 2002 19:38:31 -0000      1.6
  @@ -1,12 +1,38 @@
   #include "xercesc/sax/InputSource.hpp"
   #include "PerlEntityResolverHandler.hpp"
   
  +PerlEntityResolverHandler::PerlEntityResolverHandler()
  +{
  +    callbackObj = NULL;
  +}
  +
  +PerlEntityResolverHandler::~PerlEntityResolverHandler()
  +{
  +    if (callbackObj != NULL) {
  +     SvREFCNT_dec(callbackObj);
  +     callbackObj = NULL;
  +    }
  +}
  +
  +PerlEntityResolverHandler::PerlEntityResolverHandler(SV *obj)
  +{
  +    if (!sv_isobject(obj)) {
  +     croak("expect object");
  +    }
  +    if (!sv_derived_from(obj,"XML::Xerces::PerlEntityResolver")) {
  +     croak("expect subclass of XML::Xerces::PerlEntityResolver");
  +    }
  +    set_callback_obj(obj);
  +}
  +
   SV*
   PerlEntityResolverHandler::set_callback_obj(SV* object) {
       SV *oldRef = &PL_sv_undef;       // default to 'undef'
       if (callbackObj != NULL) {
        oldRef = callbackObj;
  -     SvREFCNT_dec(oldRef);
  +#if defined(PERL_VERSION) && PERL_VERSION >= 8
  +//   SvREFCNT_dec(oldRef);
  +#endif
       }
       SvREFCNT_inc(object);
       callbackObj = object;
  @@ -58,7 +84,8 @@
        croak("EntityResolver did not retury an InputSource\n") ;
       }
   
  -    if (SWIG_ConvertPtr(source_sv,(void **) &source, SWIGTYPE_p_InputSource) < 0) {
  +    if (SWIG_ConvertPtr(source_sv,(void **) &source, SWIGTYPE_p_InputSource,0) < 0) 
{
  +
           croak("EntityResolver did not retury an InputSource. Expected %s", 
SWIGTYPE_p_InputSource->name);
       }
       PUTBACK ;
  
  
  
  1.5       +21 -1     xml-xerces/perl/Handler/PerlErrorCallbackHandler.cpp
  
  Index: PerlErrorCallbackHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlErrorCallbackHandler.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PerlErrorCallbackHandler.cpp      28 Mar 2002 07:48:51 -0000      1.4
  +++ PerlErrorCallbackHandler.cpp      27 Aug 2002 19:38:31 -0000      1.5
  @@ -1,12 +1,32 @@
   #include <stdlib.h>
   #include "PerlErrorCallbackHandler.hpp"
   
  +PerlErrorCallbackHandler::PerlErrorCallbackHandler()
  +{
  +    callbackObj = NULL;
  +}
  +
  +PerlErrorCallbackHandler::~PerlErrorCallbackHandler()
  +{
  +    if (callbackObj != NULL) {
  +     SvREFCNT_dec(callbackObj);
  +     callbackObj = NULL;
  +    }
  +}
  +
  +PerlErrorCallbackHandler::PerlErrorCallbackHandler(SV *obj)
  +{
  +    set_callback_obj(obj);
  +}
  +
   SV*
   PerlErrorCallbackHandler::set_callback_obj(SV* object) {
       SV *oldRef = &PL_sv_undef;       // default to 'undef'
       if (callbackObj != NULL) {
        oldRef = callbackObj;
  -     SvREFCNT_dec(oldRef);
  +#if defined(PERL_VERSION) && PERL_VERSION >= 8
  +//   SvREFCNT_dec(oldRef);
  +#endif
       }
       SvREFCNT_inc(object);
       callbackObj = object;
  
  
  
  1.4       +5 -5      xml-xerces/perl/Handler/PerlErrorCallbackHandler.hpp
  
  Index: PerlErrorCallbackHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlErrorCallbackHandler.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PerlErrorCallbackHandler.hpp      28 Mar 2002 07:48:51 -0000      1.3
  +++ PerlErrorCallbackHandler.hpp      27 Aug 2002 19:38:31 -0000      1.4
  @@ -4,17 +4,17 @@
   #include "PerlCallbackHandler.hpp"
   #include "xercesc/sax/ErrorHandler.hpp"
   class PerlErrorCallbackHandler : public ErrorHandler
  -                            , public PerlCallbackHandler 
  +//                          , public PerlCallbackHandler 
   {
   
   protected:
  -//    SV *callbackObj;
  +    SV *callbackObj;
   
   public:
   
  -    PerlErrorCallbackHandler() {};
  -    PerlErrorCallbackHandler(SV *obj) : PerlCallbackHandler(obj) {};
  -    ~PerlErrorCallbackHandler() {};
  +    PerlErrorCallbackHandler();
  +    PerlErrorCallbackHandler(SV *obj);
  +    ~PerlErrorCallbackHandler();
   
       SV* set_callback_obj(SV*);
   
  
  
  
  1.2       +8 -8      xml-xerces/perl/Handler/PerlNodeFilterCallbackHandler.hpp
  
  Index: PerlNodeFilterCallbackHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlNodeFilterCallbackHandler.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PerlNodeFilterCallbackHandler.hpp 28 Mar 2002 07:47:16 -0000      1.1
  +++ PerlNodeFilterCallbackHandler.hpp 27 Aug 2002 19:38:31 -0000      1.2
  @@ -2,24 +2,24 @@
   #define __PERLNODEFILTERCALLBACKHANDLER
   
   #include "PerlCallbackHandler.hpp"
  -#include "xercesc/idom/IDOM_NodeFilter.hpp"
  -class PerlNodeFilterCallbackHandler : public IDOM_NodeFilter
  -                                 , public  PerlCallbackHandler
  +#include "xercesc/dom/DOMNodeFilter.hpp"
  +class PerlNodeFilterCallbackHandler : public DOMNodeFilter
  +//                               , public  PerlCallbackHandler
   {
   
   protected:
  -//    SV *callbackObj;
  +    SV *callbackObj;
   
   public:
   
  -    PerlNodeFilterCallbackHandler() {};
  -    PerlNodeFilterCallbackHandler(SV *obj) : PerlCallbackHandler(obj){};
  -    ~PerlNodeFilterCallbackHandler() {};
  +    PerlNodeFilterCallbackHandler();
  +    PerlNodeFilterCallbackHandler(SV *obj);
  +    ~PerlNodeFilterCallbackHandler();
   
       SV* set_callback_obj(SV*);
   
        // The NodeFilter interface
  -    short acceptNode (const IDOM_Node* node) const;
  +    short acceptNode (const DOMNode* node) const;
   };
   
   #endif __PERLNODEFILTERCALLBACKHANDLER
  
  
  
  1.2       +24 -4     xml-xerces/perl/Handler/PerlNodeFilterCallbackHandler.i
  
  Index: PerlNodeFilterCallbackHandler.i
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/Handler/PerlNodeFilterCallbackHandler.i,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PerlNodeFilterCallbackHandler.i   28 Mar 2002 07:47:16 -0000      1.1
  +++ PerlNodeFilterCallbackHandler.i   27 Aug 2002 19:38:31 -0000      1.2
  @@ -1,11 +1,31 @@
   #include "PerlNodeFilterCallbackHandler.hpp"
   
  +PerlNodeFilterCallbackHandler::PerlNodeFilterCallbackHandler()
  +{
  +    callbackObj = NULL;
  +}
  +
  +PerlNodeFilterCallbackHandler::~PerlNodeFilterCallbackHandler()
  +{
  +    if (callbackObj != NULL) {
  +     SvREFCNT_dec(callbackObj);
  +     callbackObj = NULL;
  +    }
  +}
  +
  +PerlNodeFilterCallbackHandler::PerlNodeFilterCallbackHandler(SV *obj)
  +{
  +    set_callback_obj(obj);
  +}
  +
   SV*
   PerlNodeFilterCallbackHandler::set_callback_obj(SV* object) {
       SV *oldRef = &PL_sv_undef;       // default to 'undef'
       if (callbackObj != NULL) {
        oldRef = callbackObj;
  -     SvREFCNT_dec(oldRef);
  +#if defined(PERL_VERSION) && PERL_VERSION >= 8
  +//   SvREFCNT_dec(oldRef);
  +#endif
       }
       SvREFCNT_inc(object);
       callbackObj = object;
  @@ -13,7 +33,7 @@
   }
   
   short
  -PerlNodeFilterCallbackHandler::acceptNode (const IDOM_Node* node) const
  +PerlNodeFilterCallbackHandler::acceptNode (const DOMNode* node) const
   {
       if (!callbackObj) {
           croak("\nacceptNode: no NodeFilter set\n");
  @@ -30,9 +50,9 @@
       XPUSHs(callbackObj);
   
           // the only argument is the node
  -    swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_IDOM_Node, (void **) 
&node);
  +    swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_DOMNode, (void **) &node);
       SV* node_sv = sv_newmortal();
  -    SWIG_MakePtr(node_sv, (void *) node, ty);
  +    SWIG_MakePtr(node_sv, (void *) node, ty,0);
       XPUSHs(node_sv);
   
       PUTBACK;
  
  
  

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

Reply via email to