This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Deparse.pm - avoid deep recursion warning
authorDavid Mitchell <davem@iabyn.com>
Mon, 1 Aug 2016 11:41:06 +0000 (12:41 +0100)
committerDavid Mitchell <davem@iabyn.com>
Wed, 3 Aug 2016 19:54:42 +0000 (20:54 +0100)
also add some basic descriptions to a few functions.

lib/B/Deparse.pm

index 731e9ce..5254f86 100644 (file)
@@ -460,6 +460,7 @@ sub _pessimise_walk_exe {
 sub pessimise {
     my ($self, $root, $start) = @_;
 
+    no warnings 'recursion';
     # walk tree in root-to-branch order
     $self->_pessimise_walk($root);
 
@@ -474,6 +475,9 @@ sub null {
     return class($op) eq "NULL";
 }
 
+
+# Add a CV to the list of subs that still need deparsing.
+
 sub todo {
     my $self = shift;
     my($cv, $is_form, $name) = @_;
@@ -490,6 +494,9 @@ sub todo {
     push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form, $name];
 }
 
+
+# Pop the next sub from the todo list and deparse it
+
 sub next_todo {
     my $self = shift;
     my $ent = shift @{$self->{'subs_todo'}};
@@ -1300,6 +1307,9 @@ sub deparse_argops {
     return ($o, join(', ', @sig));
 }
 
+# Deparse a sub. Returns everything except the 'sub foo',
+# e.g.  ($$) : method { ...; }
+# or    ($a, $b) : prototype($$) lvalue;
 
 sub deparse_sub {
     my $self = shift;