Reviewers: Kasper Lund, Description: Consistently use CompilationZoneScope instead of ZoneScope to ensure that the FrameElement constants list gets cleared.
Please review this at http://codereview.chromium.org/115352 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/frame-element.h M src/jsregexp.cc M src/parser.cc M src/runtime.cc Index: src/runtime.cc =================================================================== --- src/runtime.cc (revision 1950) +++ src/runtime.cc (working copy) @@ -1723,7 +1723,7 @@ int capture_count = regexp_handle->CaptureCount(); // CompiledReplacement uses zone allocation. - ZoneScope zone(DELETE_ON_EXIT); + CompilationZoneScope zone(DELETE_ON_EXIT); CompiledReplacement compiled_replacement; compiled_replacement.Compile(replacement_handle, capture_count, @@ -2376,7 +2376,7 @@ } int length = subject->length(); - ZoneScope zone_space(DELETE_ON_EXIT); + CompilationZoneScope zone_space(DELETE_ON_EXIT); ZoneList<int> offsets(8); do { int start; Index: src/frame-element.h =================================================================== --- src/frame-element.h (revision 1951) +++ src/frame-element.h (working copy) @@ -93,7 +93,7 @@ typedef ZoneList<Handle<Object> > ZoneObjectList; static ZoneObjectList* ConstantList() { - static ZoneObjectList list(10); + static ZoneObjectList list(0); return &list; } Index: src/jsregexp.cc =================================================================== --- src/jsregexp.cc (revision 1950) +++ src/jsregexp.cc (working copy) @@ -28,6 +28,7 @@ #include "v8.h" #include "ast.h" +#include "compiler.h" #include "execution.h" #include "factory.h" #include "jsregexp-inl.h" @@ -153,7 +154,7 @@ return re; } FlattenString(pattern); - ZoneScope zone_scope(DELETE_ON_EXIT); + CompilationZoneScope zone_scope(DELETE_ON_EXIT); RegExpCompileData parse_result; FlatStringReader reader(pattern); if (!ParseRegExp(&reader, flags.is_multiline(), &parse_result)) { @@ -285,7 +286,7 @@ } // Compile the RegExp. - ZoneScope zone_scope(DELETE_ON_EXIT); + CompilationZoneScope zone_scope(DELETE_ON_EXIT); JSRegExp::Flags flags = re->GetFlags(); Index: src/parser.cc =================================================================== --- src/parser.cc (revision 1950) +++ src/parser.cc (working copy) @@ -30,6 +30,7 @@ #include "api.h" #include "ast.h" #include "bootstrapper.h" +#include "compiler.h" #include "platform.h" #include "runtime.h" #include "parser.h" @@ -1096,7 +1097,7 @@ FunctionLiteral* Parser::ParseProgram(Handle<String> source, unibrow::CharacterStream* stream, bool in_global_context) { - ZoneScope zone_scope(DONT_DELETE_ON_EXIT); + CompilationZoneScope zone_scope(DONT_DELETE_ON_EXIT); HistogramTimerScope timer(&Counters::parse); Counters::total_parse_size.Increment(source->length()); @@ -1149,7 +1150,7 @@ Handle<String> name, int start_position, bool is_expression) { - ZoneScope zone_scope(DONT_DELETE_ON_EXIT); + CompilationZoneScope zone_scope(DONT_DELETE_ON_EXIT); HistogramTimerScope timer(&Counters::parse_lazy); source->TryFlattenIfNotFlat(); Counters::total_parse_size.Increment(source->length()); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
