https://chromiumcodereview.appspot.com/9594020/diff/1/src/profile-generator.cc File src/profile-generator.cc (left):
https://chromiumcodereview.appspot.com/9594020/diff/1/src/profile-generator.cc#oldcode1674 src/profile-generator.cc:1674: } else if (object->IsJSGlobalObject()) { On 2012/03/05 16:21:58, Mikhail Naganov (Chromium) wrote:
Will this fall through down to the generic case that creates "object, HeapEntry::kHidden"? Should you create a stub entry instead that you
will
properly tag in the final pass?
It should fall into JSObject at 1703 which is the superclass for JSGLobalObject. The code for both cases seems to be the same now, so I killed this one. https://chromiumcodereview.appspot.com/9594020/diff/1/src/profile-generator.cc File src/profile-generator.cc (right): https://chromiumcodereview.appspot.com/9594020/diff/1/src/profile-generator.cc#newcode3165 src/profile-generator.cc:3165: && v8_heap_explorer_.IterateAndSetObjectNames(&filler); On 2012/03/05 16:21:58, Mikhail Naganov (Chromium) wrote:
As we have discussed offline, please split GenerateSnapshot into 3
parts:
1. TagGlobalObjects and everything else that changes the heap == Garbage collection == 2. Local scope block protected by AssertNoAllocations, running
serialization
code assuming that no heap modifications are made. 3. Code that can again can cause heap allocations / reallocations.
I checked the AssertNoAllocation class and it doesn't seem to make any difference here. The code that failed does not make any new allocations, it instead reassigns a reference from one object to another. But it was enough to fail, because the number of retainers has changed between count and fill passes. So I think it's ok to leave it as is, and keep the AssertNoAllocation cover the region it currently covers. WDYT? https://chromiumcodereview.appspot.com/9594020/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
