Remove inline header includes from natives.h header.
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1303463002 Cr-Commit-Position: refs/heads/master@{#30222}
This commit is contained in:
parent
238397c108
commit
366262e606
1
BUILD.gn
1
BUILD.gn
@ -1139,6 +1139,7 @@ source_set("v8_base") {
|
||||
"src/simulator.h",
|
||||
"src/small-pointer-list.h",
|
||||
"src/snapshot/natives.h",
|
||||
"src/snapshot/natives-common.cc",
|
||||
"src/snapshot/serialize.cc",
|
||||
"src/snapshot/serialize.h",
|
||||
"src/snapshot/snapshot-common.cc",
|
||||
|
56
src/snapshot/natives-common.cc
Normal file
56
src/snapshot/natives-common.cc
Normal file
@ -0,0 +1,56 @@
|
||||
// Copyright 2015 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// The common functionality when building with internal or external natives.
|
||||
|
||||
#include "src/heap/heap.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/snapshot/natives.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
template <>
|
||||
FixedArray* NativesCollection<CORE>::GetSourceCache(Heap* heap) {
|
||||
return heap->natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
FixedArray* NativesCollection<EXPERIMENTAL>::GetSourceCache(Heap* heap) {
|
||||
return heap->experimental_natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
FixedArray* NativesCollection<EXTRAS>::GetSourceCache(Heap* heap) {
|
||||
return heap->extra_natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
FixedArray* NativesCollection<CODE_STUB>::GetSourceCache(Heap* heap) {
|
||||
return heap->code_stub_natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <NativeType type>
|
||||
void NativesCollection<type>::UpdateSourceCache(Heap* heap) {
|
||||
for (int i = 0; i < GetBuiltinsCount(); i++) {
|
||||
Object* source = GetSourceCache(heap)->get(i);
|
||||
if (!source->IsUndefined()) {
|
||||
ExternalOneByteString::cast(source)->update_data_cache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Explicit template instantiations.
|
||||
template void NativesCollection<CORE>::UpdateSourceCache(Heap* heap);
|
||||
template void NativesCollection<CODE_STUB>::UpdateSourceCache(Heap* heap);
|
||||
template void NativesCollection<EXPERIMENTAL>::UpdateSourceCache(Heap* heap);
|
||||
template void NativesCollection<EXTRAS>::UpdateSourceCache(Heap* heap);
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
@ -229,11 +229,19 @@ Vector<const char> NativesCollection<type>::GetScriptsSource() {
|
||||
}
|
||||
|
||||
|
||||
// The compiler can't 'see' all uses of the static methods and hence
|
||||
// my choice to elide them. This we'll explicitly instantiate these.
|
||||
template class NativesCollection<CORE>;
|
||||
template class NativesCollection<CODE_STUB>;
|
||||
template class NativesCollection<EXPERIMENTAL>;
|
||||
template class NativesCollection<EXTRAS>;
|
||||
// Explicit template instantiations.
|
||||
#define INSTANTIATE_TEMPLATES(T) \
|
||||
template int NativesCollection<T>::GetBuiltinsCount(); \
|
||||
template int NativesCollection<T>::GetDebuggerCount(); \
|
||||
template int NativesCollection<T>::GetIndex(const char* name); \
|
||||
template Vector<const char> NativesCollection<T>::GetScriptSource(int i); \
|
||||
template Vector<const char> NativesCollection<T>::GetScriptName(int i); \
|
||||
template Vector<const char> NativesCollection<T>::GetScriptsSource();
|
||||
INSTANTIATE_TEMPLATES(CORE)
|
||||
INSTANTIATE_TEMPLATES(CODE_STUB)
|
||||
INSTANTIATE_TEMPLATES(EXPERIMENTAL)
|
||||
INSTANTIATE_TEMPLATES(EXTRAS)
|
||||
#undef INSTANTIATE_TEMPLATES
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
@ -5,10 +5,7 @@
|
||||
#ifndef V8_SNAPSHOT_NATIVES_H_
|
||||
#define V8_SNAPSHOT_NATIVES_H_
|
||||
|
||||
#include "src/heap/heap.h"
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/objects.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/vector.h"
|
||||
|
||||
namespace v8 { class StartupData; } // Forward declaration.
|
||||
@ -37,9 +34,9 @@ class NativesCollection {
|
||||
static Vector<const char> GetScriptName(int index);
|
||||
static Vector<const char> GetScriptsSource();
|
||||
|
||||
// The following methods are implemented below:
|
||||
// The following methods are implemented in natives-common.cc:
|
||||
|
||||
inline static FixedArray* GetSourceCache(Heap* heap);
|
||||
static FixedArray* GetSourceCache(Heap* heap);
|
||||
static void UpdateSourceCache(Heap* heap);
|
||||
};
|
||||
|
||||
@ -49,40 +46,6 @@ typedef NativesCollection<EXPERIMENTAL> ExperimentalNatives;
|
||||
typedef NativesCollection<EXTRAS> ExtraNatives;
|
||||
|
||||
|
||||
template <>
|
||||
inline FixedArray* Natives::GetSourceCache(Heap* heap) {
|
||||
return heap->natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
inline FixedArray* ExperimentalNatives::GetSourceCache(Heap* heap) {
|
||||
return heap->experimental_natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
inline FixedArray* ExtraNatives::GetSourceCache(Heap* heap) {
|
||||
return heap->extra_natives_source_cache();
|
||||
}
|
||||
|
||||
|
||||
template <>
|
||||
inline FixedArray* CodeStubNatives::GetSourceCache(Heap* heap) {
|
||||
return heap->code_stub_natives_source_cache();
|
||||
}
|
||||
|
||||
template <NativeType type>
|
||||
void NativesCollection<type>::UpdateSourceCache(Heap* heap) {
|
||||
for (int i = 0; i < GetBuiltinsCount(); i++) {
|
||||
Object* source = GetSourceCache(heap)->get(i);
|
||||
if (!source->IsUndefined()) {
|
||||
ExternalOneByteString::cast(source)->update_data_cache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
|
||||
// Used for reading the natives at runtime. Implementation in natives-empty.cc
|
||||
void SetNativesFromFile(StartupData* natives_blob);
|
||||
|
@ -931,6 +931,7 @@
|
||||
'../../src/simulator.h',
|
||||
'../../src/small-pointer-list.h',
|
||||
'../../src/snapshot/natives.h',
|
||||
'../../src/snapshot/natives-common.cc',
|
||||
'../../src/snapshot/serialize.cc',
|
||||
'../../src/snapshot/serialize.h',
|
||||
'../../src/snapshot/snapshot.h',
|
||||
|
Loading…
Reference in New Issue
Block a user