On Sun, Feb 10, 2013 at 2:28 PM, Paul <[email protected]> wrote:
> Thanks for the reply!  I was using Local<Object>::Cast(args[0]) instead of
> ->ToObject() so I switched that out to match your code below.  In my module
> I take the Local<Object> from args[], assign it to a baton, pass the baton
> to my work function and then reference it there to pass to a helper function
> to read the values from the object.  However even with the below code I'm
> still dumping core on obj->Get() in this helper function -- where I've been
> getting stopped thus far.  This overall pattern has worked for me with a
> String parameter, but not with an Object parameter.  I guess I'll have to
> delve into gdb to investigate further -- something I've tried my best to
> avoid up 'til now... :-)
>
> I must say, though, that working on this native module has given me a
> tremendous appreciation for the "heavy lifting" many of you do so the rest
> of us can happily play in JavaScript land!  :-)
>
> Thanks again,
> Paul

If the object outlives the function it's used in, you have to make it
persistent. That is:

  Persistent<Object> persistent = Persistent<Object>::New(obj);

And once you're done with it:

  persistent.Dispose();
  persistent.Clear();  // Optional but catches use-after-free bugs.

You mention a work function.  If that runs in another thread, forget
what I said - it's unsafe to access JS values from other threads.
You'll have to make copies of the properties you are interested in (as
C style primitives, not JS values.)

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to