Index: src/wasm/wasm-module.h |
diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h |
index 8cf5501efb0274afa7018c2964e8001c8a36c390..c3ccf619a979f00ed6d3a7cc0c82c64d76cb0bbd 100644 |
--- a/src/wasm/wasm-module.h |
+++ b/src/wasm/wasm-module.h |
@@ -374,19 +374,6 @@ class WasmCompiledModule : public FixedArray { |
#define WCM_SMALL_NUMBER(TYPE, NAME) \ |
TYPE NAME() const { \ |
return static_cast<TYPE>(Smi::cast(get(kID_##NAME))->value()); \ |
- } \ |
- \ |
- void set_##NAME(TYPE value) { \ |
- set(kID_##NAME, Smi::FromInt(static_cast<int>(value))); \ |
- } |
- |
-#define WCM_LARGE_NUMBER(TYPE, NAME) \ |
- TYPE NAME() const { \ |
- return static_cast<TYPE>(HeapNumber::cast(get(kID_##NAME))->value()); \ |
- } \ |
- \ |
- void set_##NAME(TYPE value) { \ |
- HeapNumber::cast(get(kID_##NAME))->set_value(static_cast<double>(value)); \ |
} |
#define WCM_WEAK_LINK(TYPE, NAME) \ |
@@ -404,12 +391,11 @@ class WasmCompiledModule : public FixedArray { |
MACRO(OBJECT, FixedArray, indirect_function_tables) \ |
MACRO(OBJECT, String, module_bytes) \ |
MACRO(OBJECT, ByteArray, function_names) \ |
- MACRO(LARGE_NUMBER, uint32_t, min_required_memory) \ |
+ MACRO(SMALL_NUMBER, uint32_t, min_memory_pages) \ |
MACRO(OBJECT, FixedArray, data_segments_info) \ |
MACRO(OBJECT, ByteArray, data_segments) \ |
- MACRO(LARGE_NUMBER, uint32_t, globals_size) \ |
- MACRO(LARGE_NUMBER, uint32_t, mem_size) \ |
- MACRO(OBJECT, JSArrayBuffer, mem_start) \ |
+ MACRO(SMALL_NUMBER, uint32_t, globals_size) \ |
+ MACRO(OBJECT, JSArrayBuffer, heap) \ |
MACRO(SMALL_NUMBER, bool, export_memory) \ |
MACRO(SMALL_NUMBER, ModuleOrigin, origin) \ |
MACRO(WEAK_LINK, WasmCompiledModule, next_instance) \ |
@@ -425,34 +411,28 @@ class WasmCompiledModule : public FixedArray { |
}; |
public: |
- static Handle<WasmCompiledModule> New(Isolate* isolate) { |
- Handle<FixedArray> ret = |
- isolate->factory()->NewFixedArray(PropertyIndices::Count, TENURED); |
- Handle<HeapNumber> number; |
-#define WCM_INIT_OBJECT(IGNORE1, IGNORE2) |
-#define WCM_INIT_WEAK_LINK(IGNORE1, IGNORE2) |
-#define WCM_INIT_SMALL_NUMBER(IGNORE1, IGNORE2) |
-#define WCM_INIT_LARGE_NUMBER(IGNORE, NAME) \ |
- number = isolate->factory()->NewHeapNumber(0.0, MUTABLE, TENURED); \ |
- ret->set(kID_##NAME, *number); |
- |
-#define INITIALIZER(KIND, TYPE, NAME) WCM_INIT_##KIND(TYPE, NAME) |
- WCM_PROPERTY_TABLE(INITIALIZER) |
-#undef INITIALIZER |
- return handle(WasmCompiledModule::cast(*ret)); |
- } |
+ static Handle<WasmCompiledModule> New(Isolate* isolate, |
+ uint32_t min_memory_pages, |
+ uint32_t globals_size, |
+ bool export_memory, |
+ ModuleOrigin origin); |
static Handle<WasmCompiledModule> Clone(Isolate* isolate, |
Handle<WasmCompiledModule> module) { |
Handle<WasmCompiledModule> ret = Handle<WasmCompiledModule>::cast( |
isolate->factory()->CopyFixedArray(module)); |
- Handle<HeapNumber> number = |
- isolate->factory()->NewHeapNumber(0.0, MUTABLE, TENURED); |
- ret->set(kID_mem_size, *number); |
- ret->set_mem_size(module->mem_size()); |
return ret; |
} |
+ uint32_t mem_size() const { |
+ DCHECK(has_heap()); |
+ return heap()->byte_length()->Number(); |
+ } |
+ |
+ uint32_t default_mem_size() const { |
+ return min_memory_pages() * WasmModule::kPageSize; |
+ } |
+ |
#define DECLARATION(KIND, TYPE, NAME) WCM_##KIND(TYPE, NAME) |
WCM_PROPERTY_TABLE(DECLARATION) |
#undef DECLARATION |