http://www.perlmonks.org?node_id=944423


in reply to Re^3: where is sv_setrv?
in thread where is sv_setrv?

There is a missing refcount inc on sv before "SvRV_set(rv, sv);".

You're saying that newSVrv causes referenced material to be destroyed permaturely. I don't believe you.


In newSVrv, a new target SV is created at sv.c#l9268 in perl.git. In a hypothetical setsv_rv you need to up the refcount of the EXISTING target SV that the reference will point to or the existing target SV will get garbage collected prematurely, and we arent making a weak reference here, or your following hv_store standard where the caller has to up the refcount (or do nothing with newSV) of the sv before passing to the func?

Replies are listed 'Best First'.
Re^5: where is sv_setrv?
by ikegami (Patriarch) on Dec 20, 2011 at 21:27 UTC
    Fixed.