You mean replacing the IsDeadCheck in GetEntered with an
EnsureInitializedForIsolate? Sounds sensible and far less hacky than my
workaround, I'll try that. Another issue: Jakob pointed out that I use a
strange Chrome 12 tag, so I'll re-test with 12.0.742.130...

Thanks for the tip,
   S.

On Thu, Aug 18, 2011 at 17:41, Vitaly Repeshko <[email protected]> wrote:

> Sven, can you change the GetEntered implementation to lazily initialize the
> isolate like it's done in some other API functions?
>
> -- Vitaly
> On Aug 18, 2011 6:53 PM, "Sven Panne" <[email protected]> wrote:
> > I am currently trying to fix an issue where I need the most recent Chrome
> 12
> > (12.0.747.0) combined with a recent version of v8's 3.2 branch. I've just
> > noticed that revision 3.2.10.34 (the "minimize malloc" patch above) broke
> > Chrome 12, resulting in an immediate "Aw snap" tab after startup due to a
> > violated assertion in Isolate::handle_scope_implementer(). The problem is
> > that Chrome calls Context::GetEntered(), but handle_sope_implementer_ is
> > still NULL because of the patch above.
> >
> > The patch below seems to fix it, but I am not sure if it the right way to
> do
> > it, especially regarding the 2nd hunk. Could somebody have look at the
> issue
> > and/or comment on the patch? As it is, v8's 3.2 branch is broken, and we
> > need to fix this soon.
> >
> > Cheers,
> > S.
> >
> > Index: v8/src/isolate.cc
> > ===================================================================
> > --- v8/src/isolate.cc (revision 8835)
> > +++ v8/src/isolate.cc (working copy)
> > @@ -320,6 +320,7 @@
> > per_isolate_thread_data_key_ = Thread::CreateThreadLocalKey();
> > thread_data_table_ = new Isolate::ThreadDataTable();
> > default_isolate_ = new Isolate();
> > + default_isolate_->handle_scope_implementer_ = new
> > HandleScopeImplementer();
> > }
> > // Can't use SetIsolateThreadLocals(default_isolate_, NULL) here
> > // becase a non-null thread data may be already set.
> > @@ -738,7 +739,9 @@
> > write_input_buffer_ = new StringInputBuffer();
> > global_handles_ = new GlobalHandles(this);
> > bootstrapper_ = new Bootstrapper();
> > - handle_scope_implementer_ = new HandleScopeImplementer();
> > + if (!handle_scope_implementer_) {
> > + handle_scope_implementer_ = new HandleScopeImplementer();
> > + }
> > stub_cache_ = new StubCache(this);
> > ast_sentinels_ = new AstSentinels();
> > regexp_stack_ = new RegExpStack();
> >
> >
> > On Thu, Aug 4, 2011 at 19:26, <[email protected]> wrote:
> >
> >> LGTM
> >>
> >>
> >> http://codereview.chromium.**org/7575013/<
> http://codereview.chromium.org/7575013/>
>
> >>
> >> --
> >> v8-dev mailing list
> >> [email protected]
> >> http://groups.google.com/**group/v8-dev<
> http://groups.google.com/group/v8-dev>
> >>
>

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to