@proto_arg, %argtype_seen, %in_out, %lengthof, @line_no, %XsubAliases,
%XsubAliasValues, %Interfaces, @Attributes, %outargs, @XSStack,
);
-our ($DoSetMagic, $newXS, $proto, $Module_cname, $XsubAliases, $Interfaces, $var_num, );
+our ($newXS, $proto, $Module_cname, $Interfaces, $var_num, );
our $self = {};
}
$XSStack[$XSS_work_idx]{functions}{$Full_func_name}++;
%XsubAliases = %XsubAliasValues = %Interfaces = @Attributes = ();
- $DoSetMagic = 1;
+ $self->{DoSetMagic} = 1;
$orig_args =~ s/\\\s*/ /g; # process line continuations
my @args;
type => $var_types{$_},
num => $args_match{$_},
var => $_,
- do_setmagic => $DoSetMagic,
+ do_setmagic => $self->{DoSetMagic},
do_push => undef,
} ) for grep $in_out{$_} =~ /OUT$/, keys %in_out;
#
EOF
- print Q(<<"EOF") if defined $XsubAliases or defined $Interfaces;
+ print Q(<<"EOF") if defined $self->{xsubaliases} or defined $Interfaces;
# {
# CV * cv;
#
print @InitFileCode;
- print Q(<<"EOF") if defined $XsubAliases or defined $Interfaces;
+ print Q(<<"EOF") if defined $self->{xsubaliases} or defined $Interfaces;
# }
EOF
for (; !/^$self->{BLOCK_re}/o; $_ = shift(@line)) {
next unless /\S/;
if (/^\s*SETMAGIC\s*:\s*(ENABLE|DISABLE)\s*/) {
- $DoSetMagic = ($1 eq "ENABLE" ? 1 : 0);
+ $self->{DoSetMagic} = ($1 eq "ENABLE" ? 1 : 0);
next;
}
my ($outarg, $outcode) = /^\s*(\S+)\s*(.*?)\s*$/s;
$var_num = $args_match{$outarg};
if ($outcode) {
print "\t$outcode\n";
- print "\tSvSETMAGIC(ST(" , $var_num-1 , "));\n" if $DoSetMagic;
+ print "\tSvSETMAGIC(ST(" , $var_num-1 , "));\n" if $self->{DoSetMagic};
}
else {
generate_output( {
type => $var_types{$outarg},
num => $var_num,
var => $outarg,
- do_setmagic => $DoSetMagic,
+ do_setmagic => $self->{DoSetMagic},
do_push => undef,
} );
}
Warn("Warning: Aliases '$orig_alias' and '$XsubAliasValues{$value}' have identical values")
if $XsubAliasValues{$value};
- $XsubAliases = 1;
+ $self->{xsubaliases} = 1;
$XsubAliases{$alias} = $value;
$XsubAliasValues{$value} = $orig_alias;
}