Oh yes, thanks a lot, Erik. yours, anton.
On Thu, Apr 1, 2010 at 6:03 PM, Erik Corry <[email protected]> wrote: > > > 2010/4/1 Anton Muhin <[email protected]> >> >> It's not about tight coupling, but about level of indirecton. v8 uses >> several moving gc algorithms. for example, sailfish (js engine in > > Squirrelfish. > >> >> Safari, e.g.) doesn't use moving algorithms and thus doesn't need >> handles at all. >> >> yours, >> anton. >> >> On Thu, Apr 1, 2010 at 5:31 PM, Evgeny Astigeevich <[email protected]> >> wrote: >> > Thanks a lot. >> > This explains the code completely. >> > For me it's strange to have an abstraction of handle with tight >> > coupling to the internal implementation of handles. Guess this is done >> > due to perfomance reasons. >> > >> > On Apr 1, 5:07 pm, Anton Muhin <[email protected]> wrote: >> >> Sorry about assert, it's in internal handles (v8::internal::Handle). >> >> >> >> Despite it's name val_ in v8::Handle is actually >> >> v8::internal::Object** ---it's a location where a pointer to actual v8 >> >> object is stored. v8's garbage collector is aware of all such handles >> >> and would update v8::internal::Object* pointers when object is moved. >> >> >> >> To see the problem you need the code like that (sorry, is not tested). >> >> >> >> Local handleA(some object); >> >> Local handleB(*handleA); >> >> >> >> with your change handleA != handleB (as they use different locations >> >> to store pointers---their val_ should be different). W/o handleA == >> >> handleB as both point to the same object. >> >> >> >> yours, >> >> anton. >> > >> > -- >> > v8-dev mailing list >> > [email protected] >> > http://groups.google.com/group/v8-dev >> > >> > To unsubscribe, reply using "remove me" as the subject. >> > >> >> -- >> v8-dev mailing list >> [email protected] >> http://groups.google.com/group/v8-dev > > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
