This is a first step towards constraining down the heap interface to
just the heap.h file. Note that many includes still leak through that
file to the global "src" directory, but there now is a single place
controlling which declarations leak that way. Especially inclusion of
inline header files within "heap" has been limited drastically.
R=hpayer@chromium.org,mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1281233003
Cr-Commit-Position: refs/heads/master@{#30092}
"+src",
"-src/compiler",
"+src/compiler/pipeline.h",
+ "-src/heap",
+ "+src/heap/heap.h",
+ "+src/heap/heap-inl.h",
"-src/interpreter",
"+src/interpreter/bytecodes.h",
"+src/interpreter/interpreter.h",
"d8\.cc": [
"+include/libplatform/libplatform.h",
],
+ # TODO(mstarzinger): Get rid of grab-bag includes from heap in v8.h soon.
+ "v8\.h": [
+ "+src/heap/spaces-inl.h",
+ "+src/heap/incremental-marking-inl.h",
+ ],
+ # TODO(mstarzinger): Only needed because of Code::CodeIterateBody cyclicity.
+ "objects\.cc": [
+ "+src/heap/objects-visiting-inl.h",
+ ],
}
#include "src/deoptimizer.h"
#include "src/execution.h"
#include "src/global-handles.h"
-#include "src/heap/spaces.h"
#include "src/heap-profiler.h"
#include "src/heap-snapshot-generator-inl.h"
#include "src/icu_util.h"
#include "src/cpu-profiler.h"
#include "src/elements.h"
#include "src/gdb-jit.h"
-#include "src/heap/mark-compact.h"
#include "src/heap-profiler.h"
#include "src/ic/handler-compiler.h"
#include "src/ic/ic.h"
#include "src/deoptimizer.h"
#include "src/frames-inl.h"
#include "src/full-codegen/full-codegen.h"
-#include "src/heap/mark-compact.h"
#include "src/safepoint-table.h"
#include "src/scopeinfo.h"
#include "src/string-stream.h"
#include "src/global-handles.h"
#include "src/heap/gc-idle-time-handler.h"
#include "src/heap/incremental-marking.h"
+#include "src/heap/mark-compact-inl.h"
#include "src/heap/mark-compact.h"
#include "src/heap/memory-reducer.h"
#include "src/heap/objects-visiting-inl.h"
#include "src/code-stubs.h"
#include "src/compilation-cache.h"
#include "src/conversions.h"
+#include "src/heap/mark-compact-inl.h"
#include "src/heap/objects-visiting.h"
#include "src/heap/objects-visiting-inl.h"
namespace internal {
-MarkBit Marking::MarkBitFrom(Address addr) {
- MemoryChunk* p = MemoryChunk::FromAddress(addr);
- return p->markbits()->MarkBitFromIndex(p->AddressToMarkbitIndex(addr));
-}
-
-
void MarkCompactCollector::SetFlags(int flags) {
reduce_memory_footprint_ = ((flags & Heap::kReduceMemoryFootprintMask) != 0);
abort_incremental_marking_ =
#include "src/global-handles.h"
#include "src/heap/incremental-marking.h"
#include "src/heap/mark-compact.h"
+#include "src/heap/mark-compact-inl.h"
#include "src/heap/objects-visiting.h"
#include "src/heap/objects-visiting-inl.h"
#include "src/heap/spaces-inl.h"
class Marking : public AllStatic {
public:
- INLINE(static MarkBit MarkBitFrom(Address addr));
+ INLINE(static MarkBit MarkBitFrom(Address addr)) {
+ MemoryChunk* p = MemoryChunk::FromAddress(addr);
+ return p->markbits()->MarkBitFromIndex(p->AddressToMarkbitIndex(addr));
+ }
INLINE(static MarkBit MarkBitFrom(HeapObject* obj)) {
return MarkBitFrom(reinterpret_cast<Address>(obj));
#include "src/v8.h"
+#include "src/heap/mark-compact-inl.h"
#include "src/heap/objects-visiting.h"
namespace v8 {
#include "src/cpu-profiler.h"
#include "src/debug/debug.h"
#include "src/deoptimizer.h"
-#include "src/heap/spaces.h"
#include "src/heap-profiler.h"
#include "src/hydrogen.h"
#include "src/ic/stub-cache.h"
#include "src/char-predicates-inl.h"
#include "src/conversions.h"
-#include "src/heap/spaces-inl.h"
#include "src/messages.h"
#include "src/token.h"
#include "src/api.h"
#include "src/execution.h"
-#include "src/heap/spaces-inl.h"
#include "src/messages.h"
#include "src/string-builder.h"
#include "src/disasm.h"
#include "src/disassembler.h"
-#include "src/heap/objects-visiting.h"
#include "src/jsregexp.h"
#include "src/macro-assembler.h"
#include "src/ostreams.h"
#include "src/field-index-inl.h"
#include "src/heap/heap-inl.h"
#include "src/heap/heap.h"
-#include "src/heap/incremental-marking.h"
-#include "src/heap/objects-visiting.h"
-#include "src/heap/spaces.h"
-#include "src/heap/store-buffer.h"
#include "src/isolate.h"
#include "src/layout-descriptor-inl.h"
#include "src/lookup.h"
#include "src/disasm.h"
#include "src/disassembler.h"
-#include "src/heap/objects-visiting.h"
#include "src/interpreter/bytecodes.h"
#include "src/jsregexp.h"
#include "src/ostreams.h"
#include "src/field-index-inl.h"
#include "src/field-index.h"
#include "src/full-codegen/full-codegen.h"
-#include "src/heap/mark-compact.h"
#include "src/heap/objects-visiting-inl.h"
#include "src/hydrogen.h"
#include "src/ic/ic.h"
#include "src/execution.h"
#include "src/full-codegen/full-codegen.h"
#include "src/global-handles.h"
-#include "src/heap/mark-compact.h"
#include "src/scopeinfo.h"
namespace v8 {
#include "src/deoptimizer.h"
#include "src/elements.h"
#include "src/frames.h"
-#include "src/heap/store-buffer.h"
#include "src/heap-profiler.h"
#include "src/hydrogen.h"
#include "src/isolate.h"
// Objects & heap
#include "src/objects-inl.h" // NOLINT
#include "src/heap/spaces-inl.h" // NOLINT
-#include "src/heap/heap-inl.h" // NOLINT
#include "src/heap/incremental-marking-inl.h" // NOLINT
-#include "src/heap/mark-compact-inl.h" // NOLINT
#include "src/log-inl.h" // NOLINT
#include "src/handles-inl.h" // NOLINT
#include "src/types-inl.h" // NOLINT