Hi Mark,
A few general comments. I will provide more when your refactoring is
uploaded.
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc
File src/liveobjectlist.cc (right):
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode231
src/liveobjectlist.cc:231: }
You might add an ASSERT or SLOW_ASSERT of 'Heap::InSpace(heap_obj,
LO_SPACE)' here.
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode381
src/liveobjectlist.cc:381: if (elements_) break;
elements_ != NULL
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode770
src/liveobjectlist.cc:770: enum {
Why use a enum here instead of
static const int kNumberOfEntries = ...?
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode1101
src/liveobjectlist.cc:1101: // in the interim.
Please explain how more objects can get added to the heap during the
call to Capture().
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode1149
src/liveobjectlist.cc:1149: Handle<JSObject> result =
Factory::NewJSObject(Top::object_function());
What is supposed to happen if a lol is captured but we are not able to
return a result object?
http://codereview.chromium.org/6357005/diff/23001/src/liveobjectlist.cc#newcode1464
src/liveobjectlist.cc:1464:
Why are you using mixed pointers/handles here - is that intentional? In
handles.h/handles.cc there is a SetProperty function which takes handles
and performs GC if required.
As this function already uses Factory methods GC can happen, so
handlifying the whole thing seems like the right thing to do.
Other functions below uses a mixture of handles and raw objects.
http://codereview.chromium.org/6357005/
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev