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.
