LGTM On Mon, Feb 2, 2009 at 9:14 AM, <erik.co...@gmail.com> wrote: > Reviewers: Lasse Reichstein, > > Description: > Fix http://code.google.com/p/chromium/issues/detail?id=7258 crash in > IsFlat. > You can't keep a StringShape across things that can cause GC. > > Please review this at http://codereview.chromium.org/19749 > > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ > > Affected files: > M src/jsregexp.cc > > > Index: src/jsregexp.cc > =================================================================== > --- src/jsregexp.cc (revision 1181) > +++ src/jsregexp.cc (working copy) > @@ -672,8 +672,7 @@ > JSRegExp::Flags flags = re->GetFlags(); > > Handle<String> pattern(re->Pattern()); > - StringShape shape(*pattern); > - if (!pattern->IsFlat(shape)) { > + if (!pattern->IsFlat(StringShape(*pattern))) { > FlattenString(pattern); > } > > @@ -783,8 +782,7 @@ > Handle<String> subject) { > ASSERT_EQ(regexp->TypeTag(), JSRegExp::IRREGEXP); > > - StringShape shape(*subject); > - bool is_ascii = shape.IsAsciiRepresentation(); > + bool is_ascii = StringShape(*subject).IsAsciiRepresentation(); > Handle<FixedArray> irregexp = GetCompiledIrregexp(regexp, is_ascii); > if (irregexp.is_null()) { > return Handle<Object>::null(); > @@ -800,7 +798,7 @@ > int i = 0; > Handle<Object> matches; > > - if (!subject->IsFlat(shape)) { > + if (!subject->IsFlat(StringShape(*subject))) { > FlattenString(subject); > } > > > >
-- Lasse R.H. Nielsen l...@google.com 'Faith without judgement merely degrades the spirit divine' --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---