[heap] Avoid overzealous inclusion of heap internal headers.
authormstarzinger <mstarzinger@chromium.org>
Mon, 10 Aug 2015 16:32:08 +0000 (09:32 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 10 Aug 2015 16:32:29 +0000 (16:32 +0000)
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}

20 files changed:
src/DEPS
src/api.cc
src/builtins.cc
src/frames.cc
src/heap/heap.cc
src/heap/incremental-marking.cc
src/heap/mark-compact-inl.h
src/heap/mark-compact.cc
src/heap/mark-compact.h
src/heap/objects-visiting.cc
src/isolate.cc
src/json-parser.h
src/messages.cc
src/objects-debug.cc
src/objects-inl.h
src/objects-printer.cc
src/objects.cc
src/runtime-profiler.cc
src/v8.cc
src/v8.h

index 94d6ec6..80dab6b 100644 (file)
--- a/src/DEPS
+++ b/src/DEPS
@@ -2,6 +2,9 @@ include_rules = [
   "+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",
@@ -13,4 +16,13 @@ specific_include_rules = {
   "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",
+  ],
 }
index 8615d82..107e168 100644 (file)
@@ -31,7 +31,6 @@
 #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"
index 42ef5ec..6b0b222 100644 (file)
@@ -13,7 +13,6 @@
 #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"
index ebe0cb1..c4a93c8 100644 (file)
@@ -13,7 +13,6 @@
 #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"
index eb18925..66abc6d 100644 (file)
@@ -19,6 +19,7 @@
 #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"
index 109f4ea..db19165 100644 (file)
@@ -9,6 +9,7 @@
 #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"
 
index c78ae65..0acbe07 100644 (file)
@@ -13,12 +13,6 @@ namespace v8 {
 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_ =
index 8b9a9c3..4de8b0e 100644 (file)
@@ -15,6 +15,7 @@
 #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"
index 2610cfb..8db7f45 100644 (file)
@@ -28,7 +28,10 @@ class RootMarkingVisitor;
 
 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));
index dc22d0e..1c8e20d 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "src/v8.h"
 
+#include "src/heap/mark-compact-inl.h"
 #include "src/heap/objects-visiting.h"
 
 namespace v8 {
index f5d6bc9..1a83b70 100644 (file)
@@ -21,7 +21,6 @@
 #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"
index f1fa564..7be799b 100644 (file)
@@ -9,7 +9,6 @@
 
 #include "src/char-predicates-inl.h"
 #include "src/conversions.h"
-#include "src/heap/spaces-inl.h"
 #include "src/messages.h"
 #include "src/token.h"
 
index ebec353..55edfa8 100644 (file)
@@ -6,7 +6,6 @@
 
 #include "src/api.h"
 #include "src/execution.h"
-#include "src/heap/spaces-inl.h"
 #include "src/messages.h"
 #include "src/string-builder.h"
 
index da1ed6a..9d90f51 100644 (file)
@@ -6,7 +6,6 @@
 
 #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"
index fd0c602..991253f 100644 (file)
 #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"
index 3414e21..82648e1 100644 (file)
@@ -6,7 +6,6 @@
 
 #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"
index 3b3eb93..658c0d7 100644 (file)
@@ -27,7 +27,6 @@
 #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"
index 1825a7f..865c574 100644 (file)
@@ -14,7 +14,6 @@
 #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 {
index d16dbee..bd6f2c2 100644 (file)
--- a/src/v8.cc
+++ b/src/v8.cc
@@ -12,7 +12,6 @@
 #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"
index 71dd42f..41d4c36 100644 (file)
--- a/src/v8.h
+++ b/src/v8.h
@@ -38,9 +38,7 @@
 // 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