Patch by Mark Mentovai. Don't put static variables inline.
Original review: http://codereview.chromium.org/149768 TBR=kmillikin@chromium.org Review URL: http://codereview.chromium.org/155679 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
a6e5a0268b
commit
124ef540c0
@ -40,7 +40,7 @@ SOURCES = {
|
||||
'codegen.cc', 'compilation-cache.cc', 'compiler.cc', 'contexts.cc',
|
||||
'conversions.cc', 'counters.cc', 'dateparser.cc', 'debug.cc',
|
||||
'debug-agent.cc', 'disassembler.cc', 'execution.cc', 'factory.cc',
|
||||
'flags.cc', 'frames.cc', 'func-name-inferrer.cc',
|
||||
'flags.cc', 'frame-element.cc', 'frames.cc', 'func-name-inferrer.cc',
|
||||
'global-handles.cc', 'handles.cc', 'hashmap.cc',
|
||||
'heap.cc', 'ic.cc', 'interpreter-irregexp.cc', 'jsregexp.cc',
|
||||
'jump-target.cc', 'log.cc', 'log-utils.cc', 'mark-compact.cc', 'messages.cc',
|
||||
|
45
src/frame-element.cc
Normal file
45
src/frame-element.cc
Normal file
@ -0,0 +1,45 @@
|
||||
// Copyright 2009 the V8 project authors. All rights reserved.
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived
|
||||
// from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include "v8.h"
|
||||
|
||||
#include "frame-element.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// FrameElement implementation.
|
||||
|
||||
|
||||
FrameElement::ZoneObjectList* FrameElement::ConstantList() {
|
||||
static ZoneObjectList list(10);
|
||||
return &list;
|
||||
}
|
||||
|
||||
|
||||
} } // namespace v8::internal
|
@ -91,10 +91,7 @@ class FrameElement BASE_EMBEDDED {
|
||||
// this table of handles to the actual constants.
|
||||
typedef ZoneList<Handle<Object> > ZoneObjectList;
|
||||
|
||||
static ZoneObjectList* ConstantList() {
|
||||
static ZoneObjectList list(10);
|
||||
return &list;
|
||||
}
|
||||
static ZoneObjectList* ConstantList();
|
||||
|
||||
// Clear the constants indirection table.
|
||||
static void ClearConstantList() {
|
||||
|
@ -65,7 +65,7 @@ int RegisterAllocator::ToNumber(Register reg) {
|
||||
|
||||
Register RegisterAllocator::ToRegister(int num) {
|
||||
ASSERT(num >= 0 && num < kNumRegisters);
|
||||
static Register registers[] = { eax, ebx, ecx, edx, edi };
|
||||
const Register registers[] = { eax, ebx, ecx, edx, edi };
|
||||
return registers[num];
|
||||
}
|
||||
|
||||
|
@ -834,12 +834,7 @@ class AstBuildingParserFactory : public ParserFactory {
|
||||
return new CallEval(expression, arguments, pos);
|
||||
}
|
||||
|
||||
virtual Statement* EmptyStatement() {
|
||||
// Use a statically allocated empty statement singleton to avoid
|
||||
// allocating lots and lots of empty statements.
|
||||
static v8::internal::EmptyStatement empty;
|
||||
return ∅
|
||||
}
|
||||
virtual Statement* EmptyStatement();
|
||||
};
|
||||
|
||||
|
||||
@ -1032,6 +1027,14 @@ Scope* AstBuildingParserFactory::NewScope(Scope* parent, Scope::Type type,
|
||||
}
|
||||
|
||||
|
||||
Statement* AstBuildingParserFactory::EmptyStatement() {
|
||||
// Use a statically allocated empty statement singleton to avoid
|
||||
// allocating lots and lots of empty statements.
|
||||
static v8::internal::EmptyStatement empty;
|
||||
return ∅
|
||||
}
|
||||
|
||||
|
||||
Scope* ParserFactory::NewScope(Scope* parent, Scope::Type type,
|
||||
bool inside_with) {
|
||||
ASSERT(parent != NULL);
|
||||
|
@ -44,6 +44,12 @@ Result::Result(Register reg) {
|
||||
}
|
||||
|
||||
|
||||
Result::ZoneObjectList* Result::ConstantList() {
|
||||
static ZoneObjectList list(10);
|
||||
return &list;
|
||||
}
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// RegisterAllocator implementation.
|
||||
|
||||
|
@ -92,10 +92,7 @@ class Result BASE_EMBEDDED {
|
||||
// of handles to the actual constants.
|
||||
typedef ZoneList<Handle<Object> > ZoneObjectList;
|
||||
|
||||
static ZoneObjectList* ConstantList() {
|
||||
static ZoneObjectList list(10);
|
||||
return &list;
|
||||
}
|
||||
static ZoneObjectList* ConstantList();
|
||||
|
||||
// Clear the constants indirection table.
|
||||
static void ClearConstantList() {
|
||||
|
@ -254,6 +254,7 @@
|
||||
'../../src/frames-inl.h',
|
||||
'../../src/frames.cc',
|
||||
'../../src/frames.h',
|
||||
'../../src/frame-element.cc',
|
||||
'../../src/frame-element.h',
|
||||
'../../src/func-name-inferrer.cc',
|
||||
'../../src/func-name-inferrer.h',
|
||||
|
@ -396,6 +396,14 @@
|
||||
RelativePath="..\..\src\flags.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frame-element.cc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frame-element.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\ia32\frames-ia32.cc"
|
||||
>
|
||||
@ -408,10 +416,6 @@
|
||||
RelativePath="..\..\src\frames-inl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frame-element.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frames.cc"
|
||||
>
|
||||
|
@ -400,6 +400,14 @@
|
||||
RelativePath="..\..\src\flags.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frame-element.cc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\frame-element.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\arm\frames-arm.cc"
|
||||
>
|
||||
|
Loading…
Reference in New Issue
Block a user