in reply to Re^5: panic: memory wrap
in thread panic: memory wrap

Sorry to bug you again, but I'm trying to work out how I could have gotten to the working solution without your having to lead me by the nose.

Note that call_sv() can take a CV as an arg

Is this written down somewhere I should have been looking? Or is it something you picked up/worked out from experience.

Also, you led me to using g_rec = SvREFCNT_inc(SvRV(rec)); to safely replicate the CV* for the callback and detailed the need to decrement the refcount before replacing the CV*, if the callback addesses are changed.

In perlcall, they suggest a combination of newSVsv() and SvSetSV() to do this, which if I've unwound the macros correctly, amounts to much the same thing, except that your way sheds a level of indirection?

Did I understand that right? Can you see any particular advantage of one over the other?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^7: panic: memory wrap
by dave_the_m (Monsignor) on Nov 16, 2005 at 00:32 UTC
    Bother, I replied to this once, but previewed and then forgot to submit :-(

    Anyway, the short answer is that I'm an internals guy rather than an XS guy, so I tend to know internal ways of doing things rather than official API ways of doing things.

    Dave.