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

Unified Diff: src/wasm/wasm-module.cc

Issue 1910213004: [wasm] Replace WasmName by Vector<const char> (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@wasm-offset-table-2
Patch Set: Created 4 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: src/wasm/wasm-module.cc
diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc
index e15b8d1f55318c7dcc8a51ad1746c06b4b8c3fc6..b2484736db9d053305b271d8ab79e708833158da 100644
--- a/src/wasm/wasm-module.cc
+++ b/src/wasm/wasm-module.cc
@@ -101,9 +101,9 @@ std::ostream& operator<<(std::ostream& os, const WasmFunctionName& pair) {
os << "#" << pair.function_->func_index << ":";
if (pair.function_->name_offset > 0) {
if (pair.module_) {
- WasmName name = pair.module_->GetName(pair.function_->name_offset,
- pair.function_->name_length);
- os.write(name.name, name.length);
+ Vector<const char> name = pair.module_->GetName(
+ pair.function_->name_offset, pair.function_->name_length);
+ os.write(name.start(), name.length());
} else {
os << "+" << pair.function_->func_index;
}
@@ -333,17 +333,16 @@ WasmModule::WasmModule()
start_function_index(-1),
origin(kWasmOrigin) {}
-static MaybeHandle<JSFunction> ReportFFIError(ErrorThrower& thrower,
- const char* error, uint32_t index,
- wasm::WasmName module_name,
- wasm::WasmName function_name) {
- if (function_name.name) {
+static MaybeHandle<JSFunction> ReportFFIError(
+ ErrorThrower& thrower, const char* error, uint32_t index,
+ Vector<const char> module_name, Vector<const char> function_name) {
+ if (function_name.start()) {
thrower.Error("Import #%d module=\"%.*s\" function=\"%.*s\" error: %s",
- index, module_name.length, module_name.name,
- function_name.length, function_name.name, error);
+ index, module_name.length(), module_name.start(),
+ function_name.length(), function_name.start(), error);
} else {
thrower.Error("Import #%d module=\"%.*s\" error: %s", index,
- module_name.length, module_name.name, error);
+ module_name.length(), module_name.start(), error);
}
thrower.Error("Import ");
return MaybeHandle<JSFunction>();
@@ -351,15 +350,15 @@ static MaybeHandle<JSFunction> ReportFFIError(ErrorThrower& thrower,
static MaybeHandle<JSFunction> LookupFunction(
ErrorThrower& thrower, Factory* factory, Handle<JSObject> ffi,
- uint32_t index, wasm::WasmName module_name, wasm::WasmName function_name) {
+ uint32_t index, Vector<const char> module_name,
+ Vector<const char> function_name) {
if (ffi.is_null()) {
return ReportFFIError(thrower, "FFI is not an object", index, module_name,
function_name);
}
// Look up the module first.
- Handle<String> name = factory->InternalizeUtf8String(
- Vector<const char>(module_name.name, module_name.length));
+ Handle<String> name = factory->InternalizeUtf8String(module_name);
MaybeHandle<Object> result = Object::GetProperty(ffi, name);
if (result.is_null()) {
return ReportFFIError(thrower, "module not found", index, module_name,
@@ -374,10 +373,9 @@ static MaybeHandle<JSFunction> LookupFunction(
}
Handle<Object> function;
- if (function_name.name) {
+ if (function_name.start()) {
// Look up the function in the module.
- Handle<String> name = factory->InternalizeUtf8String(
- Vector<const char>(function_name.name, function_name.length));
+ Handle<String> name = factory->InternalizeUtf8String(function_name);
MaybeHandle<Object> result = Object::GetProperty(module, name);
if (result.is_null()) {
return ReportFFIError(thrower, "function not found", index, module_name,
@@ -471,10 +469,10 @@ MaybeHandle<JSObject> WasmModule::Instantiate(Isolate* isolate,
if (import_table.size() > 0) {
instance.import_code.reserve(import_table.size());
for (const WasmImport& import : import_table) {
- WasmName module_name =
+ Vector<const char> module_name =
GetNameOrNull(import.module_name_offset, import.module_name_length);
- WasmName function_name = GetNameOrNull(import.function_name_offset,
- import.function_name_length);
+ Vector<const char> function_name = GetNameOrNull(
+ import.function_name_offset, import.function_name_length);
MaybeHandle<JSFunction> function = LookupFunction(
thrower, factory, ffi, index, module_name, function_name);
if (function.is_null()) return MaybeHandle<JSObject>();
@@ -500,10 +498,9 @@ MaybeHandle<JSObject> WasmModule::Instantiate(Isolate* isolate,
if (thrower.error()) break;
DCHECK_EQ(index, func.func_index);
- WasmName str = GetName(func.name_offset, func.name_length);
- WasmName str_null = {nullptr, 0};
- Handle<String> name = factory->InternalizeUtf8String(
- Vector<const char>(str.name, str.length));
+ Vector<const char> str = GetName(func.name_offset, func.name_length);
+ Vector<const char> str_null = {nullptr, 0};
+ Handle<String> name = factory->InternalizeUtf8String(str);
Handle<Code> code = Handle<Code>::null();
Handle<JSFunction> function = Handle<JSFunction>::null();
if (func.external) {
@@ -519,8 +516,8 @@ MaybeHandle<JSObject> WasmModule::Instantiate(Isolate* isolate,
code =
compiler::CompileWasmFunction(thrower, isolate, &module_env, func);
if (code.is_null()) {
- thrower.Error("Compilation of #%d:%.*s failed.", index, str.length,
- str.name);
+ thrower.Error("Compilation of #%d:%.*s failed.", index, str.length(),
+ str.start());
return MaybeHandle<JSObject>();
}
if (func.exported) {
@@ -563,9 +560,8 @@ MaybeHandle<JSObject> WasmModule::Instantiate(Isolate* isolate,
// Compile wrappers and add them to the exports object.
for (const WasmExport& exp : export_table) {
if (thrower.error()) break;
- WasmName str = GetName(exp.name_offset, exp.name_length);
- Handle<String> name = factory->InternalizeUtf8String(
- Vector<const char>(str.name, str.length));
+ Vector<const char> str = GetName(exp.name_offset, exp.name_length);
+ Handle<String> name = factory->InternalizeUtf8String(str);
Handle<Code> code = linker.GetFunctionCode(exp.func_index);
Handle<JSFunction> function = compiler::CompileJSToWasmWrapper(
isolate, &module_env, name, code, instance.js_object,
« no previous file with comments | « src/wasm/wasm-module.h ('k') | src/wasm/wasm-opcodes.h » ('j') | src/wasm/wasm-opcodes.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698