Revision history for Perl extension XML::LibXML
+2.0207 2021-04-17
+ - Small cleanups:
+ - https://github.com/shlomif/perl-XML-LibXML/pull/63
+ - Thanks to @Grinnz , @Kritzefitz and @atoomic .
+
2.0206 2020-09-15
- Add expand_entities => 1 to the instantiation at lib/XML/LibXML/SAX.pm
- in order to fix https://rt.cpan.org/Public/Bug/Display.html?id=132759
use IO::Handle; # for FH reads called as methods
BEGIN {
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
$ABI_VERSION = 2;
require Exporter;
-require DynaLoader;
-@ISA = qw(DynaLoader Exporter);
+use XSLoader ();
+@ISA = qw(Exporter);
use vars qw($__PROXY_NODE_REGISTRY $__threads_shared $__PROXY_NODE_REGISTRY_MUTEX $__loaded);
#-------------------------------------------------------------------------#
# bootstrapping #
#-------------------------------------------------------------------------#
-bootstrap XML::LibXML $VERSION;
+XSLoader::load( 'XML::LibXML', $VERSION );
undef &AUTOLOAD;
*encodeToUTF8 = \&XML::LibXML::Common::encodeToUTF8;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
t/47load_xml_callbacks.t
t/48_RH5_double_free_rt83779.t
t/48_SAX_Builder_rt_91433.t
+t/48_gh_pr63_detect_undef_values.t
t/48_memleak_rt_83744.t
t/48_reader_undef_warning_on_empty_str_rt106830.t
t/48_removeChild_crashes_rt_80395.t
"Petr Pajas <PAJAS@cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010",
"keywords" : [
"dom",
"html",
"web" : "https://github.com/shlomif/perl-XML-LibXML"
}
},
- "version" : "2.0206",
- "x_serialization_backend" : "JSON::PP version 4.04"
+ "version" : "2.0207",
+ "x_serialization_backend" : "JSON::PP version 4.06"
}
Config: '0'
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010'
keywords:
- dom
- html
warnings: '0'
resources:
repository: https://github.com/shlomif/perl-XML-LibXML.git
-version: '2.0206'
+version: '2.0207'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
</authorgroup>
- <edition>2.0206</edition>
+ <edition>2.0207</edition>
<copyright>
<year>2001-2007</year>
<holder>AxKit.com Ltd</holder>
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
our @ISA = qw/Tie::Hash/;
use vars qw($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
BEGIN
{
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use overload
'""' => \&value,
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use warnings;
require Exporter;
-require DynaLoader;
use vars qw( @ISA $VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use XML::LibXML qw(:libxml);
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use XML::LibXML;
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use 5.008_000;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use warnings;
use vars qw($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use constant ERR_OK => 0;
use constant ERR_INTERNAL_ERROR => 1;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use Encode ();
use vars qw(@error_domains $VERSION $WARNINGS);
-use Carp;
use overload
'""' => \&as_string,
'eq' => sub {
fallback => 1;
$WARNINGS = 0; # 0: suppress, 1: report via warn, 2: report via die
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use constant XML_ERR_NONE => 0;
use constant XML_ERR_WARNING => 1; # A simple warning
# warnings. This has the pleasing benefit of making the test suite
# run warning-free.
no warnings 'utf8';
- my $context = Encode::encode('utf8', $self->{context}, Encode::FB_DEFAULT);
+ my $context = Encode::encode('UTF-8', $self->{context});
$msg.=$context."\n";
$context = substr($context,0,$self->{column});
$context=~s/[^\t]/ /g;
sub dump {
my ($self)=@_;
- use Data::Dumper;
+ require Data::Dumper;
return Data::Dumper->new([$self],['error'])->Dump;
}
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use warnings;
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use overload
'""' => \&value,
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use XML::LibXML::Number;
use vars qw($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use overload
'""' => \&to_literal,
use warnings;
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use overload
'""' => \&value,
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use warnings;
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use 5.008_000;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use vars qw($VERSION @ISA);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
use XML::LibXML;
use XML::SAX::Base;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
return $XML::LibXML::__threads_shared ? 0 : 1;
}
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
sub new {
my $class = shift;
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use XML::LibXML;
use vars qw ($VERSION);
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
sub CLONE_SKIP {
return $XML::LibXML::__threads_shared ? 0 : 1;
use XML::SAX::Base;
use XML::SAX::DocumentLocator;
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
@ISA = ('XML::SAX::Base');
sub CLONE_SKIP {
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
use XML::LibXML;
use XML::LibXML::NodeList;
-$VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
# should LibXML XPath data types be used for simple objects
# when passing parameters to extension functions (default: no)
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
=head1 VERSION
-2.0206
+2.0207
=head1 COPYRIGHT
dTHX;
xs_warn("SV2C: start!\n");
- if ( scalar != NULL && scalar != &PL_sv_undef ) {
+ if ( scalar != NULL && SvOK(scalar) ) {
STRLEN len = 0;
char * t_pv =SvPV(scalar, len);
xmlChar* ts = NULL;
--- /dev/null
+
+use strict;
+use warnings;
+
+=head1 DESCRIPTION
+
+L<https://github.com/shlomif/perl-XML-LibXML/pull/63>
+
+This test program
+
+ use warnings;
+ use XML::LibXML;
+
+ my $test = XML::LibXML::Text->new({}->{bar});
+
+produces the following warning:
+
+ $ perl ~/test.pl
+ Use of uninitialized value in subroutine entry at /home/sven/test.pl line 4.
+
+This apparently happens, because Sv2C tries to catch undef values by comparing the memory location of the scalar in question to &PL_sv_undef. While PL_sv_undef certainly is an undef value, not all undef values share its memory location. The added commit fixes this, by using SvOK to correctly detect all undef values.
+
+=cut
+
+use Test::More tests => 1;
+
+use XML::LibXML;
+
+$SIG{__WARN__} = sub { die "warning " . shift . "!"; };
+
+my $test = XML::LibXML::Text->new( {}->{bar} );
+
+# TEST
+pass("success");
use strict;
use warnings;
-use Test::More tests => 3;
+use Test::More;
use File::Spec;
+if ( ! $ENV{AUTHOR_TESTING} ) {
+ plan skip_all => "only for AUTHORS";
+} else {
+ plan tests => 3;
+}
+
sub _is_present
{
my $path = shift;