Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: src/api.cc

Issue 2490663002: [wasm] Move all heap-allocated WASM structures into wasm-objects.h. (Closed)
Patch Set: [wasm] Move all heap-allocated WASM structures into wasm-objects.h. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « BUILD.gn ('k') | src/asmjs/asm-js.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/api.h" 5 #include "src/api.h"
6 6
7 #include <string.h> // For memcpy, strlen. 7 #include <string.h> // For memcpy, strlen.
8 #ifdef V8_USE_ADDRESS_SANITIZER 8 #ifdef V8_USE_ADDRESS_SANITIZER
9 #include <sanitizer/asan_interface.h> 9 #include <sanitizer/asan_interface.h>
10 #endif // V8_USE_ADDRESS_SANITIZER 10 #endif // V8_USE_ADDRESS_SANITIZER
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 #include "src/snapshot/snapshot.h" 66 #include "src/snapshot/snapshot.h"
67 #include "src/startup-data-util.h" 67 #include "src/startup-data-util.h"
68 #include "src/tracing/trace-event.h" 68 #include "src/tracing/trace-event.h"
69 #include "src/unicode-inl.h" 69 #include "src/unicode-inl.h"
70 #include "src/v8.h" 70 #include "src/v8.h"
71 #include "src/v8threads.h" 71 #include "src/v8threads.h"
72 #include "src/value-serializer.h" 72 #include "src/value-serializer.h"
73 #include "src/version.h" 73 #include "src/version.h"
74 #include "src/vm-state-inl.h" 74 #include "src/vm-state-inl.h"
75 #include "src/wasm/wasm-module.h" 75 #include "src/wasm/wasm-module.h"
76 #include "src/wasm/wasm-objects.h"
76 #include "src/wasm/wasm-result.h" 77 #include "src/wasm/wasm-result.h"
77 78
78 namespace v8 { 79 namespace v8 {
79 80
80 #define LOG_API(isolate, class_name, function_name) \ 81 #define LOG_API(isolate, class_name, function_name) \
81 i::RuntimeCallTimerScope _runtime_timer( \ 82 i::RuntimeCallTimerScope _runtime_timer( \
82 isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \ 83 isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \
83 LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name)) 84 LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name))
84 85
85 #define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate)) 86 #define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate))
(...skipping 7144 matching lines...) Expand 10 before | Expand all | Expand 10 after
7230 Local<Proxy> result; 7231 Local<Proxy> result;
7231 has_pending_exception = 7232 has_pending_exception =
7232 !ToLocal<Proxy>(i::JSProxy::New(isolate, target, handler), &result); 7233 !ToLocal<Proxy>(i::JSProxy::New(isolate, target, handler), &result);
7233 RETURN_ON_FAILED_EXECUTION(Proxy); 7234 RETURN_ON_FAILED_EXECUTION(Proxy);
7234 RETURN_ESCAPED(result); 7235 RETURN_ESCAPED(result);
7235 } 7236 }
7236 7237
7237 Local<String> WasmCompiledModule::GetWasmWireBytes() { 7238 Local<String> WasmCompiledModule::GetWasmWireBytes() {
7238 i::Handle<i::JSObject> obj = 7239 i::Handle<i::JSObject> obj =
7239 i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); 7240 i::Handle<i::JSObject>::cast(Utils::OpenHandle(this));
7240 i::Handle<i::wasm::WasmCompiledModule> compiled_part = 7241 i::Handle<i::WasmCompiledModule> compiled_part =
7241 i::handle(i::wasm::WasmCompiledModule::cast(obj->GetInternalField(0))); 7242 i::handle(i::WasmCompiledModule::cast(obj->GetInternalField(0)));
7242 i::Handle<i::String> wire_bytes = compiled_part->module_bytes(); 7243 i::Handle<i::String> wire_bytes = compiled_part->module_bytes();
7243 return Local<String>::Cast(Utils::ToLocal(wire_bytes)); 7244 return Local<String>::Cast(Utils::ToLocal(wire_bytes));
7244 } 7245 }
7245 7246
7246 WasmCompiledModule::SerializedModule WasmCompiledModule::Serialize() { 7247 WasmCompiledModule::SerializedModule WasmCompiledModule::Serialize() {
7247 i::Handle<i::JSObject> obj = 7248 i::Handle<i::JSObject> obj =
7248 i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); 7249 i::Handle<i::JSObject>::cast(Utils::OpenHandle(this));
7249 i::Handle<i::wasm::WasmCompiledModule> compiled_part = 7250 i::Handle<i::WasmCompiledModule> compiled_part =
7250 i::handle(i::wasm::WasmCompiledModule::cast(obj->GetInternalField(0))); 7251 i::handle(i::WasmCompiledModule::cast(obj->GetInternalField(0)));
7251 7252
7252 std::unique_ptr<i::ScriptData> script_data = 7253 std::unique_ptr<i::ScriptData> script_data =
7253 i::WasmCompiledModuleSerializer::SerializeWasmModule(obj->GetIsolate(), 7254 i::WasmCompiledModuleSerializer::SerializeWasmModule(obj->GetIsolate(),
7254 compiled_part); 7255 compiled_part);
7255 script_data->ReleaseDataOwnership(); 7256 script_data->ReleaseDataOwnership();
7256 7257
7257 size_t size = static_cast<size_t>(script_data->length()); 7258 size_t size = static_cast<size_t>(script_data->length());
7258 return {std::unique_ptr<const uint8_t[]>(script_data->data()), size}; 7259 return {std::unique_ptr<const uint8_t[]>(script_data->data()), size};
7259 } 7260 }
7260 7261
7261 MaybeLocal<WasmCompiledModule> WasmCompiledModule::Deserialize( 7262 MaybeLocal<WasmCompiledModule> WasmCompiledModule::Deserialize(
7262 Isolate* isolate, 7263 Isolate* isolate,
7263 const WasmCompiledModule::CallerOwnedBuffer& serialized_module, 7264 const WasmCompiledModule::CallerOwnedBuffer& serialized_module,
7264 const WasmCompiledModule::CallerOwnedBuffer& wire_bytes) { 7265 const WasmCompiledModule::CallerOwnedBuffer& wire_bytes) {
7265 int size = static_cast<int>(serialized_module.second); 7266 int size = static_cast<int>(serialized_module.second);
7266 i::ScriptData sc(serialized_module.first, size); 7267 i::ScriptData sc(serialized_module.first, size);
7267 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); 7268 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
7268 i::MaybeHandle<i::FixedArray> maybe_compiled_part = 7269 i::MaybeHandle<i::FixedArray> maybe_compiled_part =
7269 i::WasmCompiledModuleSerializer::DeserializeWasmModule( 7270 i::WasmCompiledModuleSerializer::DeserializeWasmModule(
7270 i_isolate, &sc, 7271 i_isolate, &sc,
7271 {wire_bytes.first, static_cast<int>(wire_bytes.second)}); 7272 {wire_bytes.first, static_cast<int>(wire_bytes.second)});
7272 i::Handle<i::FixedArray> compiled_part; 7273 i::Handle<i::FixedArray> compiled_part;
7273 if (!maybe_compiled_part.ToHandle(&compiled_part)) { 7274 if (!maybe_compiled_part.ToHandle(&compiled_part)) {
7274 return MaybeLocal<WasmCompiledModule>(); 7275 return MaybeLocal<WasmCompiledModule>();
7275 } 7276 }
7276 i::Handle<i::wasm::WasmCompiledModule> compiled_module = 7277 i::Handle<i::WasmCompiledModule> compiled_module =
7277 handle(i::wasm::WasmCompiledModule::cast(*compiled_part)); 7278 handle(i::WasmCompiledModule::cast(*compiled_part));
7278 return Local<WasmCompiledModule>::Cast( 7279 return Local<WasmCompiledModule>::Cast(
7279 Utils::ToLocal(i::wasm::CreateWasmModuleObject( 7280 Utils::ToLocal(i::Handle<i::JSObject>::cast(
7280 i_isolate, compiled_module, i::wasm::ModuleOrigin::kWasmOrigin))); 7281 i::WasmModuleObject::New(i_isolate, compiled_module))));
7281 } 7282 }
7282 7283
7283 MaybeLocal<WasmCompiledModule> WasmCompiledModule::DeserializeOrCompile( 7284 MaybeLocal<WasmCompiledModule> WasmCompiledModule::DeserializeOrCompile(
7284 Isolate* isolate, 7285 Isolate* isolate,
7285 const WasmCompiledModule::CallerOwnedBuffer& serialized_module, 7286 const WasmCompiledModule::CallerOwnedBuffer& serialized_module,
7286 const WasmCompiledModule::CallerOwnedBuffer& wire_bytes) { 7287 const WasmCompiledModule::CallerOwnedBuffer& wire_bytes) {
7287 MaybeLocal<WasmCompiledModule> ret = 7288 MaybeLocal<WasmCompiledModule> ret =
7288 Deserialize(isolate, serialized_module, wire_bytes); 7289 Deserialize(isolate, serialized_module, wire_bytes);
7289 if (!ret.IsEmpty()) { 7290 if (!ret.IsEmpty()) {
7290 return ret; 7291 return ret;
(...skipping 2473 matching lines...) Expand 10 before | Expand all | Expand 10 after
9764 Address callback_address = 9765 Address callback_address =
9765 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 9766 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
9766 VMState<EXTERNAL> state(isolate); 9767 VMState<EXTERNAL> state(isolate);
9767 ExternalCallbackScope call_scope(isolate, callback_address); 9768 ExternalCallbackScope call_scope(isolate, callback_address);
9768 callback(info); 9769 callback(info);
9769 } 9770 }
9770 9771
9771 9772
9772 } // namespace internal 9773 } // namespace internal
9773 } // namespace v8 9774 } // namespace v8
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/asmjs/asm-js.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698