Commits

Anonymous committed b28af83

- bumped version to 1.66
- shared the proxy registry with XML::LibXSLT

Comments (0)

Files changed (17)

 Revision history for Perl extension XML::LibXML
-1.66pre
+1.66
    - Perl-thread support contributed by Tim Brody [rt.cpan.org #31945]
    - fix [rt.cpan.org #30610] possible segmentation fault when importing nodes from a document to an element created with XML::LibXML::Element->new
    - fix [rt.cpan.org #30261] Segmentation fault when extracting elements from an XML chunk
    - make Makefile.PL require Perl 5.6.1
    - minor fixes and additions to the documentation 
+   - portability patch from [rt.cpan.org #29627]
+   - give registered Ns declarations precedence over document-specific ones
+     in XML::LibXML::XPathContext; fixes [rt.cpan.org #29650]
 
 1.65
    - fix bug in t/40reader.t revealed by a bugfix in Test::More 0.71 (Jonathan Rockway)
 
 BEGIN {
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 require Exporter;
 require DynaLoader;
 @ISA = qw(DynaLoader Exporter);
 
 /* this should keep the default */
 static xmlExternalEntityLoader LibXML_old_ext_ent_loader = NULL;
-
+ProxyNodePtr PROXY_NODE_REGISTRY = NULL;
 
 /* ****************************************************************
  * Error handler
     OUTPUT:
         RETVAL
 
+#### The following function is called by XML::LibXSLT 
+#### It passes the other library the pointer to our internal proxy_node registry
+#### so that nodes created there get properly registered before they are disposed
+#### by our DESTROY
+SV*
+__proxy_registry()
+    CODE:
+        RETVAL = NEWSV(0,0);
+	sv_setref_pv( RETVAL, NULL, (void*) &PROXY_NODE_REGISTRY );	       
+    OUTPUT:
+        RETVAL
+
 const char *
 LIBXML_DOTTED_VERSION()
     CODE:
 In 1.61 the XML::LibXML::XPathContext module, previously distributed
 separately, was merged in.
 
+In 1.66, an experimental support for Perl threads has been implemented.
+
 
 DEPENDENCIES
 ============
-1.59
-
-* Add a comment on findvalue() - no list context!!! why? findvalue is
-a XPath function (in libxml2.) it must not return lists
-
-- Make warning (wg. sgml parser veraltet) - pepl
-
+- use structured error API so that at least RelaxNG and Schema validators report line numbers on error
             <para>XML::LibXML was almost entirely reimplemented between version 1.40 to version 1.49. This may cause problems on some production machines. With
             version 1.50 a lot of compatibility fixes were applied, so programs written for XML::LibXML 1.40 or less should run with version 1.50 again.</para>
             <para>In 1.59, a new callback API was introduced. This new API is not compatible with the previous one.
-	       See XML-LibXML-InputCallback manual page for details.</para>
+	       See XML::LibXML::InputCallback manual page for details.</para>
  	    <para>In 1.61 the XML::LibXML::XPathContext module, previously distributed separately, was merged in.</para>
 	    <para>In 1.66, an experimental support for Perl threads has been implemented.</para>
         </sect1>

lib/XML/LibXML/Boolean.pm

 
 use vars qw ($VERSION);
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
         '""' => \&value,

lib/XML/LibXML/Literal.pm

 use strict;
 
 use vars qw ($VERSION);
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload 
 		'""' => \&value,

lib/XML/LibXML/NodeList.pm

 use XML::LibXML::Number;
 
 use vars qw ($VERSION);
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload 
 		'""' => \&to_literal,

lib/XML/LibXML/Number.pm

 use strict;
 
 use vars qw ($VERSION);
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
         '""' => \&value,

lib/XML/LibXML/Reader.pm

 use warnings;
 
 use vars qw ($VERSION);
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use Carp;
 use 5.008_000;

lib/XML/LibXML/SAX.pm

 use strict;
 use vars qw($VERSION @ISA);
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use XML::LibXML;
 use XML::SAX::Base;

lib/XML/LibXML/SAX/Builder.pm

 
 use vars qw ($VERSION);
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 sub new {
     my $class = shift;

lib/XML/LibXML/SAX/Generator.pm

 use XML::LibXML;
 use vars qw ($VERSION);
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 warn("This class (", __PACKAGE__, ") is deprecated!");
 

lib/XML/LibXML/SAX/Parser.pm

 use XML::SAX::Base;
 use XML::SAX::DocumentLocator;
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 @ISA = ('XML::SAX::Base');
 
 sub _parse_characterstream {

lib/XML/LibXML/XPathContext.pm

 use XML::LibXML;
 use XML::LibXML::NodeList;
 
-$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
 
 # should LibXML XPath data types be used for simple objects
 # when passing parameters to extension functions (default: no)
 
 /*
  * registry of all current proxy nodes
+ *
+ * other classes like XML::LibXSLT must get a pointer
+ * to this registry via XML::LibXML::__proxy_registry
+ *
  */
-ProxyNodePtr PROXY_NODE_REGISTRY = NULL;
+extern ProxyNodePtr PROXY_NODE_REGISTRY;
+
+/*
+ * returns the address of the proxy registry
+ */
+ProxyNodePtr*
+PmmProxyNodeRegistryPtr(ProxyNodePtr proxy)
+{
+    return &PROXY_NODE_REGISTRY;
+}
+
 
 /*
  * @proxy: proxy node to register
     if( PROXY_NODE_REGISTRY == proxy ) {
         PROXY_NODE_REGISTRY = proxy->_registry;
     }
-    else {
+    else if (cur) {
         while(cur->_registry != NULL)
         {
             if( cur->_registry == proxy )
             }
             cur = cur->_registry;
         }
+    } else {
+      warn("XML::LibXML: unregistering node, while no nodes have been registered?\n");
     }
 }