Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move Perl5Array refcnt inc to C code
  • Loading branch information
niner committed Oct 3, 2016
1 parent b69fda4 commit 22f7f33
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/Inline/Perl5.pm6
Expand Up @@ -106,6 +106,9 @@ sub p5_sv_to_char_star(Perl5Interpreter, Pointer) is native($p5helper)
sub p5_sv_to_av(Perl5Interpreter, Pointer) is native($p5helper)
returns Pointer { ... }

sub p5_sv_to_av_inc(Perl5Interpreter, Pointer) is native($p5helper)
returns Pointer { ... }

sub p5_sv_to_hv(Perl5Interpreter, Pointer) is native($p5helper)
returns Pointer { ... }

Expand Down Expand Up @@ -570,7 +573,7 @@ method !p5_hash_to_writeback_p6_hash(Pointer $sv) {
}

method !p5_array_to_writeback_p6_array(Pointer $sv) {
my Pointer $av = p5_sv_to_av($!p5, $sv);
my Pointer $av = p5_sv_to_av_inc($!p5, $sv);

Perl5Array.new(ip5 => self, p5 => $!p5, :$av)
}
Expand Down
6 changes: 6 additions & 0 deletions p5helper.c
Expand Up @@ -198,6 +198,12 @@ AV *p5_sv_to_av(PerlInterpreter *my_perl, SV* sv) {
return (AV *) SvRV(sv);
}

AV *p5_sv_to_av_inc(PerlInterpreter *my_perl, SV* sv) {
AV * const retval = (AV *) SvRV(sv);
SvREFCNT_inc((SV *)retval);
return retval;
}

HV *p5_sv_to_hv(PerlInterpreter *my_perl, SV* sv) {
return (HV *) SvRV(sv);
}
Expand Down

0 comments on commit 22f7f33

Please sign in to comment.