Move $gotRETVAL into $self.
authorJames E. Keenan <jkeenan@cpan.org>
Mon, 29 Mar 2010 00:35:36 +0000 (20:35 -0400)
committerSteffen Mueller <smueller@cpan.org>
Tue, 12 Jul 2011 18:53:53 +0000 (20:53 +0200)
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm

index 384571e..218e8d3 100644 (file)
@@ -41,7 +41,7 @@ our (
   %argtype_seen, %in_out, %lengthof, 
   @line_no, 
   %XsubAliases, %XsubAliasValues, %Interfaces, @Attributes, %outargs, 
-  $gotRETVAL, $condnum, $cond,
+  $condnum, $cond,
   $RETVAL_code, $func_args, @XSStack, $ALIAS, 
 );
 our ($DoSetMagic, $newXS, $proto, $Module_cname, $XsubAliases, $Interfaces, $var_num, );
@@ -661,7 +661,7 @@ EOF
       $self->{retvaldone} = 0;
       $self->{deferred} = "";
       %arg_list = ();
-      $gotRETVAL = 0;
+      $self->{gotRETVAL} = 0;
 
       INPUT_handler();
       process_keyword("INPUT|PREINIT|INTERFACE_MACRO|C_ARGS|ALIAS|ATTRS|PROTOTYPE|SCOPE|OVERLOAD");
@@ -762,7 +762,7 @@ EOF
       }
 
       # do output variables
-      $gotRETVAL = 0;        # 1 if RETVAL seen in OUTPUT section;
+      $self->{gotRETVAL} = 0;        # 1 if RETVAL seen in OUTPUT section;
       undef $RETVAL_code ;    # code to set RETVAL (from OUTPUT section);
       # $wantRETVAL set if 'RETVAL =' autogenerated
       ($wantRETVAL, $self->{ret_type}) = (0, 'void') if $RETVAL_no_return;
@@ -778,10 +778,10 @@ EOF
       } ) for grep $in_out{$_} =~ /OUT$/, keys %in_out;
 
       # all OUTPUT done, so now push the return value on the stack
-      if ($gotRETVAL && $RETVAL_code) {
+      if ($self->{gotRETVAL} && $RETVAL_code) {
         print "\t$RETVAL_code\n";
       }
-      elsif ($gotRETVAL || $wantRETVAL) {
+      elsif ($self->{gotRETVAL} || $wantRETVAL) {
         my $t = $args{optimize} && $targetable{$type_kind{$self->{ret_type}}};
         # Although the '$var' declared in the next line is never explicitly
         # used within this 'elsif' block, commenting it out leads to
@@ -1226,10 +1226,10 @@ sub OUTPUT_handler {
     my ($outarg, $outcode) = /^\s*(\S+)\s*(.*?)\s*$/s;
     blurt ("Error: duplicate OUTPUT argument '$outarg' ignored"), next
       if $outargs{$outarg}++;
-    if (!$gotRETVAL and $outarg eq 'RETVAL') {
+    if (!$self->{gotRETVAL} and $outarg eq 'RETVAL') {
       # deal with RETVAL last
       $RETVAL_code = $outcode;
-      $gotRETVAL = 1;
+      $self->{gotRETVAL} = 1;
       next;
     }
     blurt ("Error: OUTPUT $outarg not an argument"), next