Commit b0d984cb authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

[wasm] Avoid including heap-inl.h in wasm-objects.h

heap-inl.h exposes the whole world, which is fine from other inline
files but not from regular headers.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I09ec67c6558682cb0d5181031bc39341a3f4c5bf
Reviewed-on: https://chromium-review.googlesource.com/643294Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47729}
parent 226e63fc
...@@ -2058,6 +2058,7 @@ v8_source_set("v8_base") { ...@@ -2058,6 +2058,7 @@ v8_source_set("v8_base") {
"src/wasm/wasm-module-builder.h", "src/wasm/wasm-module-builder.h",
"src/wasm/wasm-module.cc", "src/wasm/wasm-module.cc",
"src/wasm/wasm-module.h", "src/wasm/wasm-module.h",
"src/wasm/wasm-objects-inl.h",
"src/wasm/wasm-objects.cc", "src/wasm/wasm-objects.cc",
"src/wasm/wasm-objects.h", "src/wasm/wasm-objects.h",
"src/wasm/wasm-opcodes.cc", "src/wasm/wasm-opcodes.cc",
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
#include "src/version.h" #include "src/version.h"
#include "src/vm-state-inl.h" #include "src/vm-state-inl.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
namespace v8 { namespace v8 {
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include "src/wasm/wasm-js.h" #include "src/wasm/wasm-js.h"
#include "src/wasm/wasm-module-builder.h" #include "src/wasm/wasm-module-builder.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
namespace v8 { namespace v8 {
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include "src/wasm/function-body-decoder.h" #include "src/wasm/function-body-decoder.h"
#include "src/wasm/wasm-limits.h" #include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-opcodes.h" #include "src/wasm/wasm-opcodes.h"
#include "src/wasm/wasm-text.h" #include "src/wasm/wasm-text.h"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "src/frames-inl.h" #include "src/frames-inl.h"
#include "src/wasm/wasm-interpreter.h" #include "src/wasm/wasm-interpreter.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace v8 { namespace v8 {
namespace internal { namespace internal {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "src/debug/liveedit.h" #include "src/debug/liveedit.h"
#include "src/frames-inl.h" #include "src/frames-inl.h"
#include "src/isolate.h" #include "src/isolate.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace v8 { namespace v8 {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "src/objects/debug-objects-inl.h" #include "src/objects/debug-objects-inl.h"
#include "src/snapshot/natives.h" #include "src/snapshot/natives.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "include/v8-debug.h" #include "include/v8-debug.h"
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "src/visitors.h" #include "src/visitors.h"
#include "src/vm-state-inl.h" #include "src/vm-state-inl.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace v8 { namespace v8 {
namespace internal { namespace internal {
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define V8_OBJECTS_FRAME_ARRAY_INL_H_ #define V8_OBJECTS_FRAME_ARRAY_INL_H_
#include "src/objects/frame-array.h" #include "src/objects/frame-array.h"
#include "src/wasm/wasm-objects-inl.h"
// Has to be the last include (doesn't have include guards): // Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h" #include "src/objects/object-macros.h"
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include "src/objects/debug-objects-inl.h" #include "src/objects/debug-objects-inl.h"
#include "src/runtime/runtime.h" #include "src/runtime/runtime.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace v8 { namespace v8 {
namespace internal { namespace internal {
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "src/snapshot/code-serializer.h" #include "src/snapshot/code-serializer.h"
#include "src/snapshot/natives.h" #include "src/snapshot/natives.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace { namespace {
struct WasmCompileControls { struct WasmCompileControls {
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "src/version.h" #include "src/version.h"
#include "src/visitors.h" #include "src/visitors.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
namespace v8 { namespace v8 {
namespace internal { namespace internal {
......
...@@ -1454,6 +1454,7 @@ ...@@ -1454,6 +1454,7 @@
'wasm/wasm-module-builder.h', 'wasm/wasm-module-builder.h',
'wasm/wasm-interpreter.cc', 'wasm/wasm-interpreter.cc',
'wasm/wasm-interpreter.h', 'wasm/wasm-interpreter.h',
'wasm/wasm-objects-inl.h',
'wasm/wasm-objects.cc', 'wasm/wasm-objects.cc',
'wasm/wasm-objects.h', 'wasm/wasm-objects.h',
'wasm/wasm-opcodes.cc', 'wasm/wasm-opcodes.cc',
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include "src/snapshot/code-serializer.h" #include "src/snapshot/code-serializer.h"
#include "src/transitions.h" #include "src/transitions.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
namespace v8 { namespace v8 {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include <src/wasm/module-compiler.h> #include "src/wasm/module-compiler.h"
#include <atomic> #include <atomic>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "src/wasm/module-decoder.h" #include "src/wasm/module-decoder.h"
#include "src/wasm/wasm-js.h" #include "src/wasm/wasm-js.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
#define TRACE(...) \ #define TRACE(...) \
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "src/source-position-table.h" #include "src/source-position-table.h"
#include "src/wasm/decoder.h" #include "src/wasm/decoder.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-opcodes.h" #include "src/wasm/wasm-opcodes.h"
#if __clang__ #if __clang__
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "src/wasm/wasm-interpreter.h" #include "src/wasm/wasm-interpreter.h"
#include "src/wasm/wasm-limits.h" #include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/zone/accounting-allocator.h" #include "src/zone/accounting-allocator.h"
#if __clang__ #if __clang__
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include "src/wasm/wasm-external-refs.h" #include "src/wasm/wasm-external-refs.h"
#include "src/wasm/wasm-limits.h" #include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/zone/accounting-allocator.h" #include "src/zone/accounting-allocator.h"
#include "src/zone/zone-containers.h" #include "src/zone/zone-containers.h"
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "src/wasm/wasm-js.h" #include "src/wasm/wasm-js.h"
#include "src/wasm/wasm-limits.h" #include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
using v8::internal::wasm::ErrorThrower; using v8::internal::wasm::ErrorThrower;
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#include "src/wasm/wasm-js.h" #include "src/wasm/wasm-js.h"
#include "src/wasm/wasm-limits.h" #include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-result.h" #include "src/wasm/wasm-result.h"
#if __clang__ #if __clang__
......
// Copyright 2017 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.
#ifndef V8_WASM_OBJECTS_INL_H_
#define V8_WASM_OBJECTS_INL_H_
#include "src/heap/heap-inl.h"
#include "src/wasm/wasm-objects.h"
namespace v8 {
namespace internal {
// Has to be the last include (doesn't have include guards)
#include "src/objects/object-macros.h"
CAST_ACCESSOR(WasmInstanceObject)
CAST_ACCESSOR(WasmMemoryObject)
CAST_ACCESSOR(WasmModuleObject)
CAST_ACCESSOR(WasmTableObject)
#define OPTIONAL_ACCESSORS(holder, name, type, offset) \
bool holder::has_##name() { \
return !READ_FIELD(this, offset)->IsUndefined(GetIsolate()); \
} \
ACCESSORS(holder, name, type, offset)
// WasmModuleObject
ACCESSORS(WasmModuleObject, compiled_module, WasmCompiledModule,
kCompiledModuleOffset)
// WasmTableObject
ACCESSORS(WasmTableObject, functions, FixedArray, kFunctionsOffset)
ACCESSORS(WasmTableObject, maximum_length, Object, kMaximumLengthOffset)
ACCESSORS(WasmTableObject, dispatch_tables, FixedArray, kDispatchTablesOffset)
// WasmMemoryObject
ACCESSORS(WasmMemoryObject, array_buffer, JSArrayBuffer, kArrayBufferOffset)
SMI_ACCESSORS(WasmMemoryObject, maximum_pages, kMaximumPagesOffset)
OPTIONAL_ACCESSORS(WasmMemoryObject, instances, WeakFixedArray,
kInstancesOffset)
// WasmInstanceObject
ACCESSORS(WasmInstanceObject, compiled_module, WasmCompiledModule,
kCompiledModuleOffset)
ACCESSORS(WasmInstanceObject, exports_object, JSObject, kExportsObjectOffset)
OPTIONAL_ACCESSORS(WasmInstanceObject, memory_object, WasmMemoryObject,
kMemoryObjectOffset)
OPTIONAL_ACCESSORS(WasmInstanceObject, memory_buffer, JSArrayBuffer,
kMemoryBufferOffset)
ACCESSORS(WasmInstanceObject, globals_buffer, JSArrayBuffer,
kGlobalsBufferOffset)
OPTIONAL_ACCESSORS(WasmInstanceObject, debug_info, WasmDebugInfo,
kDebugInfoOffset)
ACCESSORS(WasmInstanceObject, directly_called_instances, FixedArray,
kDirectlyCalledInstancesOffset)
// WasmSharedModuleData
ACCESSORS(WasmSharedModuleData, module_bytes, SeqOneByteString,
kModuleBytesOffset)
ACCESSORS(WasmSharedModuleData, script, Script, kScriptOffset)
OPTIONAL_ACCESSORS(WasmSharedModuleData, asm_js_offset_table, ByteArray,
kAsmJsOffsetTableOffset)
OPTIONAL_ACCESSORS(WasmSharedModuleData, breakpoint_infos, FixedArray,
kBreakPointInfosOffset)
OPTIONAL_ACCESSORS(WasmSharedModuleData, lazy_compilation_orchestrator, Foreign,
kLazyCompilationOrchestratorOffset)
OPTIONAL_ACCESSORS(WasmDebugInfo, locals_names, FixedArray, kLocalsNamesOffset)
OPTIONAL_ACCESSORS(WasmDebugInfo, c_wasm_entries, FixedArray,
kCWasmEntriesOffset)
OPTIONAL_ACCESSORS(WasmDebugInfo, c_wasm_entry_map, Managed<wasm::SignatureMap>,
kCWasmEntryMapOffset)
#undef OPTIONAL_ACCESSORS
#define FORWARD_SHARED(type, name) \
type WasmCompiledModule::name() { return shared()->name(); }
FORWARD_SHARED(SeqOneByteString*, module_bytes)
FORWARD_SHARED(wasm::WasmModule*, module)
FORWARD_SHARED(Script*, script)
FORWARD_SHARED(bool, is_asm_js)
#undef FORWARD_SHARED
#define WCM_OBJECT_OR_WEAK(TYPE, NAME, ID, TYPE_CHECK, SETTER_MODIFIER) \
Handle<TYPE> WasmCompiledModule::NAME() const { \
return handle(ptr_to_##NAME()); \
} \
\
MaybeHandle<TYPE> WasmCompiledModule::maybe_##NAME() const { \
if (has_##NAME()) return NAME(); \
return MaybeHandle<TYPE>(); \
} \
\
TYPE* WasmCompiledModule::maybe_ptr_to_##NAME() const { \
Object* obj = get(ID); \
if (!(TYPE_CHECK)) return nullptr; \
return TYPE::cast(obj); \
} \
\
TYPE* WasmCompiledModule::ptr_to_##NAME() const { \
Object* obj = get(ID); \
DCHECK(TYPE_CHECK); \
return TYPE::cast(obj); \
} \
\
bool WasmCompiledModule::has_##NAME() const { \
Object* obj = get(ID); \
return TYPE_CHECK; \
} \
\
void WasmCompiledModule::reset_##NAME() { set_undefined(ID); } \
\
void WasmCompiledModule::set_##NAME(Handle<TYPE> value) { \
set_ptr_to_##NAME(*value); \
} \
void WasmCompiledModule::set_ptr_to_##NAME(TYPE* value) { set(ID, value); }
#define WCM_OBJECT(TYPE, NAME) \
WCM_OBJECT_OR_WEAK(TYPE, NAME, kID_##NAME, obj->Is##TYPE(), public)
#define WCM_CONST_OBJECT(TYPE, NAME) \
WCM_OBJECT_OR_WEAK(TYPE, NAME, kID_##NAME, obj->Is##TYPE(), private)
#define WCM_WASM_OBJECT(TYPE, NAME) \
WCM_OBJECT_OR_WEAK(TYPE, NAME, kID_##NAME, TYPE::Is##TYPE(obj), private)
#define WCM_SMALL_CONST_NUMBER(TYPE, NAME) \
TYPE WasmCompiledModule::NAME() const { \
return static_cast<TYPE>(Smi::ToInt(get(kID_##NAME))); \
} \
\
void WasmCompiledModule::set_##NAME(TYPE value) { \
set(kID_##NAME, Smi::FromInt(value)); \
}
#define WCM_WEAK_LINK(TYPE, NAME) \
WCM_OBJECT_OR_WEAK(WeakCell, weak_##NAME, kID_##NAME, obj->IsWeakCell(), \
public) \
\
Handle<TYPE> WasmCompiledModule::NAME() const { \
return handle(TYPE::cast(weak_##NAME()->value())); \
}
#define WCM_LARGE_NUMBER(TYPE, NAME) \
TYPE WasmCompiledModule::NAME() const { \
Object* value = get(kID_##NAME); \
DCHECK(value->IsMutableHeapNumber()); \
return static_cast<TYPE>(HeapNumber::cast(value)->value()); \
} \
\
void WasmCompiledModule::set_##NAME(TYPE value) { \
Object* number = get(kID_##NAME); \
DCHECK(number->IsMutableHeapNumber()); \
HeapNumber::cast(number)->set_value(static_cast<double>(value)); \
} \
\
void WasmCompiledModule::recreate_##NAME(Handle<WasmCompiledModule> obj, \
Factory* factory, TYPE init_val) { \
Handle<HeapNumber> number = factory->NewHeapNumber( \
static_cast<double>(init_val), MutableMode::MUTABLE, TENURED); \
obj->set(kID_##NAME, *number); \
} \
bool WasmCompiledModule::has_##NAME() const { \
return get(kID_##NAME)->IsMutableHeapNumber(); \
}
#define DEFINITION(KIND, TYPE, NAME) WCM_##KIND(TYPE, NAME)
WCM_PROPERTY_TABLE(DEFINITION)
#undef DECLARATION
#undef WCM_CONST_OBJECT
#undef WCM_LARGE_NUMBER
#undef WCM_OBJECT_OR_WEAK
#undef WCM_SMALL_CONST_NUMBER
#undef WCM_WEAK_LINK
uint32_t WasmTableObject::current_length() { return functions()->length(); }
bool WasmTableObject::has_maximum_length() {
return maximum_length()->Number() >= 0;
}
bool WasmMemoryObject::has_maximum_pages() { return maximum_pages() >= 0; }
Address WasmCompiledModule::GetEmbeddedMemStartOrNull() const {
return has_embedded_mem_start()
? reinterpret_cast<Address>(embedded_mem_start())
: nullptr;
}
Address WasmCompiledModule::GetGlobalsStartOrNull() const {
return has_globals_start() ? reinterpret_cast<Address>(globals_start())
: nullptr;
}
uint32_t WasmCompiledModule::GetEmbeddedMemSizeOrZero() const {
return has_embedded_mem_size() ? embedded_mem_size() : 0;
}
void WasmCompiledModule::ReplaceCodeTableForTesting(
Handle<FixedArray> testing_table) {
set_code_table(testing_table);
}
#include "src/objects/object-macros-undef.h"
} // namespace internal
} // namespace v8
#endif // V8_WASM_OBJECTS_INL_H_
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "src/wasm/module-decoder.h" #include "src/wasm/module-decoder.h"
#include "src/wasm/wasm-code-specialization.h" #include "src/wasm/wasm-code-specialization.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-text.h" #include "src/wasm/wasm-text.h"
#define TRACE(...) \ #define TRACE(...) \
......
This diff is collapsed.
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "src/wasm/module-decoder.h" #include "src/wasm/module-decoder.h"
#include "src/wasm/wasm-module-builder.h" #include "src/wasm/wasm-module-builder.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-opcodes.h" #include "src/wasm/wasm-opcodes.h"
#include "test/cctest/cctest.h" #include "test/cctest/cctest.h"
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include "src/wasm/wasm-interpreter.h" #include "src/wasm/wasm-interpreter.h"
#include "src/wasm/wasm-js.h" #include "src/wasm/wasm-js.h"
#include "src/wasm/wasm-module.h" #include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects.h" #include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-opcodes.h" #include "src/wasm/wasm-opcodes.h"
#include "src/zone/accounting-allocator.h" #include "src/zone/accounting-allocator.h"
#include "src/zone/zone.h" #include "src/zone/zone.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment