Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: Inline::C demonstration for C programmers

by ikegami (Patriarch)
on Sep 01, 2008 at 23:14 UTC ( [id://708352] : note . print w/replies, xml ) Need Help??


in reply to Re^2: Inline::C demonstration for C programmers
in thread Inline::C demonstration for C programmers

I'm actually having second thoughts. The program, in this case, is the DLL created and loaded by Inline::C. If the DLL is unloaded, then doesn't the pointer become invalid?

That still wouldn't be a problem here since the pointer to the string will be discarded before inflect returns control to Perl (having created an SV holding a copy of the string), and thus before Inline::C has a chance to unload the DLL.

Replies are listed 'Best First'.
Re^4: Inline::C demonstration for C programmers
by missingthepoint (Friar) on Sep 03, 2008 at 02:07 UTC
    If the DLL is unloaded, then doesn't the pointer become invalid?

    Yep, at least on my OS. In abstract terms, the virtual memory mapping for that DLL is removed when it's unloaded, and any pointers to memory in the range corresponding to that DLL's mapping are now junk.

    That still wouldn't be a problem here...

    I'll take your word for it, since I have to. My perl internals knowledge is pretty much 0. :) However, if I've actually misused Inline::C I'd be happy for someone to point it out.


    email: perl -e 'print reverse map { chr( ord($_)-1 ) } split //, "\x0bufo/hojsfufqAofc";'