RT#130487: fix stack-management bug in Data::Dumper
authorAaron Crane <arc@cpan.org>
Wed, 4 Jan 2017 15:42:32 +0000 (15:42 +0000)
committerAaron Crane <arc@cpan.org>
Wed, 4 Jan 2017 15:48:15 +0000 (15:48 +0000)
This was introduced when Data::Dumper acquired the ability to call
B::Deparse from its XS implementation.

dist/Data-Dumper/Dumper.pm
dist/Data-Dumper/Dumper.xs
dist/Data-Dumper/t/bugs.t

index 78efd44..00f6326 100644 (file)
@@ -10,7 +10,7 @@
 package Data::Dumper;
 
 BEGIN {
-    $VERSION = '2.166'; # Don't forget to set version and release
+    $VERSION = '2.167'; # Don't forget to set version and release
 }               # date in POD below!
 
 #$| = 1;
@@ -1459,13 +1459,13 @@ be to use the C<Sortkeys> filter of Data::Dumper.
 
 Gurusamy Sarathy        gsar@activestate.com
 
-Copyright (c) 1996-2016 Gurusamy Sarathy. All rights reserved.
+Copyright (c) 1996-2017 Gurusamy Sarathy. All rights reserved.
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
 
 =head1 VERSION
 
-Version 2.166  (November 14 2016)
+Version 2.167  (January 4 2017)
 
 =head1 SEE ALSO
 
index d288bbd..0e7142e 100644 (file)
@@ -548,6 +548,8 @@ deparsed_output(pTHX_ SV *val)
 
     FREETMPS;
 
+    PUTBACK;
+
     return text;
 }
 
index 0a1ee8f..5db82da 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 }
 
 use strict;
-use Test::More tests => 23;
+use Test::More tests => 24;
 use Data::Dumper;
 
 {
@@ -168,4 +168,15 @@ SKIP: {
     }
 }
 
+# RT#130487 - stack management bug in XS deparse
+SKIP: {
+    skip "No XS available", 1 if !defined &Data::Dumper::Dumpxs;
+    sub rt130487_args { 0 + @_ }
+    my $code = sub {};
+    local $Data::Dumper::Useperl = 0;
+    local $Data::Dumper::Deparse = 1;
+    my $got = rt130487_args( Dumper($code) );
+    is($got, 1, "stack management in XS deparse works, rt 130487");
+}
+
 # EOF