| OLD | NEW | 
|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/wasm/module-decoder.h" | 5 #include "src/wasm/module-decoder.h" | 
| 6 | 6 | 
| 7 #include "src/base/functional.h" | 7 #include "src/base/functional.h" | 
| 8 #include "src/base/platform/platform.h" | 8 #include "src/base/platform/platform.h" | 
| 9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" | 
| 10 #include "src/objects.h" | 10 #include "src/objects.h" | 
| (...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 568                           WasmFunction* function) { | 568                           WasmFunction* function) { | 
| 569     if (FLAG_trace_wasm_decode_time) { | 569     if (FLAG_trace_wasm_decode_time) { | 
| 570       OFStream os(stdout); | 570       OFStream os(stdout); | 
| 571       os << "Verifying WASM function " << WasmFunctionName(function, menv) | 571       os << "Verifying WASM function " << WasmFunctionName(function, menv) | 
| 572          << std::endl; | 572          << std::endl; | 
| 573       os << std::endl; | 573       os << std::endl; | 
| 574     } | 574     } | 
| 575     FunctionBody body = {menv, function->sig, start_, | 575     FunctionBody body = {menv, function->sig, start_, | 
| 576                          start_ + function->code_start_offset, | 576                          start_ + function->code_start_offset, | 
| 577                          start_ + function->code_end_offset}; | 577                          start_ + function->code_end_offset}; | 
| 578     TreeResult result = VerifyWasmCode(body); | 578     TreeResult result = VerifyWasmCode(module_zone->allocator(), body); | 
| 579     if (result.failed()) { | 579     if (result.failed()) { | 
| 580       // Wrap the error message from the function decoder. | 580       // Wrap the error message from the function decoder. | 
| 581       std::ostringstream str; | 581       std::ostringstream str; | 
| 582       str << "in function " << WasmFunctionName(function, menv) << ": "; | 582       str << "in function " << WasmFunctionName(function, menv) << ": "; | 
| 583       str << result; | 583       str << result; | 
| 584       std::string strval = str.str(); | 584       std::string strval = str.str(); | 
| 585       const char* raw = strval.c_str(); | 585       const char* raw = strval.c_str(); | 
| 586       size_t len = strlen(raw); | 586       size_t len = strlen(raw); | 
| 587       char* buffer = new char[len]; | 587       char* buffer = new char[len]; | 
| 588       strncpy(buffer, raw, len); | 588       strncpy(buffer, raw, len); | 
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 791   if (function_start > function_end) return FunctionError("start > end"); | 791   if (function_start > function_end) return FunctionError("start > end"); | 
| 792   if (size > kMaxFunctionSize) | 792   if (size > kMaxFunctionSize) | 
| 793     return FunctionError("size > maximum function size"); | 793     return FunctionError("size > maximum function size"); | 
| 794   WasmFunction* function = new WasmFunction(); | 794   WasmFunction* function = new WasmFunction(); | 
| 795   ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin); | 795   ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin); | 
| 796   return decoder.DecodeSingleFunction(module_env, function); | 796   return decoder.DecodeSingleFunction(module_env, function); | 
| 797 } | 797 } | 
| 798 }  // namespace wasm | 798 }  // namespace wasm | 
| 799 }  // namespace internal | 799 }  // namespace internal | 
| 800 }  // namespace v8 | 800 }  // namespace v8 | 
| OLD | NEW | 
|---|