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

Side by Side Diff: src/wasm/wasm-objects.cc

Issue 2526783002: [base] Define CHECK comparison for signed vs. unsigned (Closed)
Patch Set: Rebase & refactor for windows Created 4 years 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
OLDNEW
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/wasm-objects.h" 5 #include "src/wasm/wasm-objects.h"
6 #include "src/wasm/wasm-module.h" 6 #include "src/wasm/wasm-module.h"
7 7
8 #define TRACE(...) \ 8 #define TRACE(...) \
9 do { \ 9 do { \
10 if (FLAG_trace_wasm_instances) PrintF(__VA_ARGS__); \ 10 if (FLAG_trace_wasm_instances) PrintF(__VA_ARGS__); \
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 static uint32_t SafeUint32(Object* value) { 43 static uint32_t SafeUint32(Object* value) {
44 if (value->IsSmi()) { 44 if (value->IsSmi()) {
45 int32_t val = Smi::cast(value)->value(); 45 int32_t val = Smi::cast(value)->value();
46 CHECK_GE(val, 0); 46 CHECK_GE(val, 0);
47 return static_cast<uint32_t>(val); 47 return static_cast<uint32_t>(val);
48 } 48 }
49 DCHECK(value->IsHeapNumber()); 49 DCHECK(value->IsHeapNumber());
50 HeapNumber* num = HeapNumber::cast(value); 50 HeapNumber* num = HeapNumber::cast(value);
51 CHECK_GE(num->value(), 0.0); 51 CHECK_GE(num->value(), 0.0);
52 CHECK_LE(num->value(), static_cast<double>(kMaxUInt32)); 52 CHECK_LE(num->value(), kMaxUInt32);
53 return static_cast<uint32_t>(num->value()); 53 return static_cast<uint32_t>(num->value());
54 } 54 }
55 55
56 static int32_t SafeInt32(Object* value) { 56 static int32_t SafeInt32(Object* value) {
57 if (value->IsSmi()) { 57 if (value->IsSmi()) {
58 return Smi::cast(value)->value(); 58 return Smi::cast(value)->value();
59 } 59 }
60 DCHECK(value->IsHeapNumber()); 60 DCHECK(value->IsHeapNumber());
61 HeapNumber* num = HeapNumber::cast(value); 61 HeapNumber* num = HeapNumber::cast(value);
62 CHECK_GE(num->value(), static_cast<double>(Smi::kMinValue)); 62 CHECK_GE(num->value(), Smi::kMinValue);
63 CHECK_LE(num->value(), static_cast<double>(Smi::kMaxValue)); 63 CHECK_LE(num->value(), Smi::kMaxValue);
64 return static_cast<int32_t>(num->value()); 64 return static_cast<int32_t>(num->value());
65 } 65 }
66 66
67 Handle<WasmModuleObject> WasmModuleObject::New( 67 Handle<WasmModuleObject> WasmModuleObject::New(
68 Isolate* isolate, Handle<WasmCompiledModule> compiled_module) { 68 Isolate* isolate, Handle<WasmCompiledModule> compiled_module) {
69 ModuleOrigin origin = compiled_module->module()->origin; 69 ModuleOrigin origin = compiled_module->module()->origin;
70 70
71 Handle<JSObject> module_object; 71 Handle<JSObject> module_object;
72 if (origin == ModuleOrigin::kWasmOrigin) { 72 if (origin == ModuleOrigin::kWasmOrigin) {
73 Handle<JSFunction> module_cons( 73 Handle<JSFunction> module_cons(
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 364
365 uint32_t WasmCompiledModule::default_mem_size() const { 365 uint32_t WasmCompiledModule::default_mem_size() const {
366 return min_mem_pages() * WasmModule::kPageSize; 366 return min_mem_pages() * WasmModule::kPageSize;
367 } 367 }
368 368
369 Vector<const uint8_t> WasmCompiledModule::GetRawFunctionName( 369 Vector<const uint8_t> WasmCompiledModule::GetRawFunctionName(
370 uint32_t func_index) { 370 uint32_t func_index) {
371 DCHECK_GT(module()->functions.size(), func_index); 371 DCHECK_GT(module()->functions.size(), func_index);
372 WasmFunction& function = module()->functions[func_index]; 372 WasmFunction& function = module()->functions[func_index];
373 SeqOneByteString* bytes = ptr_to_module_bytes(); 373 SeqOneByteString* bytes = ptr_to_module_bytes();
374 DCHECK_GE(static_cast<size_t>(bytes->length()), function.name_offset); 374 DCHECK_GE(bytes->length(), function.name_offset);
375 DCHECK_GE(static_cast<size_t>(bytes->length() - function.name_offset), 375 DCHECK_GE(bytes->length() - function.name_offset, function.name_length);
376 function.name_length);
377 return Vector<const uint8_t>(bytes->GetCharsAddress() + function.name_offset, 376 return Vector<const uint8_t>(bytes->GetCharsAddress() + function.name_offset,
378 function.name_length); 377 function.name_length);
379 } 378 }
380 379
381 int WasmCompiledModule::GetFunctionOffset(uint32_t func_index) const { 380 int WasmCompiledModule::GetFunctionOffset(uint32_t func_index) const {
382 std::vector<WasmFunction>& functions = module()->functions; 381 std::vector<WasmFunction>& functions = module()->functions;
383 if (static_cast<uint32_t>(func_index) >= functions.size()) return -1; 382 if (static_cast<uint32_t>(func_index) >= functions.size()) return -1;
384 DCHECK_GE(static_cast<uint32_t>(kMaxInt), 383 DCHECK_GE(kMaxInt, functions[func_index].code_start_offset);
385 functions[func_index].code_start_offset);
386 return static_cast<int>(functions[func_index].code_start_offset); 384 return static_cast<int>(functions[func_index].code_start_offset);
387 } 385 }
388 386
389 int WasmCompiledModule::GetContainingFunction(uint32_t byte_offset) const { 387 int WasmCompiledModule::GetContainingFunction(uint32_t byte_offset) const {
390 std::vector<WasmFunction>& functions = module()->functions; 388 std::vector<WasmFunction>& functions = module()->functions;
391 389
392 // Binary search for a function containing the given position. 390 // Binary search for a function containing the given position.
393 int left = 0; // inclusive 391 int left = 0; // inclusive
394 int right = static_cast<int>(functions.size()); // exclusive 392 int right = static_cast<int>(functions.size()); // exclusive
395 if (right == 0) return false; 393 if (right == 0) return false;
(...skipping 21 matching lines...) Expand all
417 if (func_index < 0) return false; 415 if (func_index < 0) return false;
418 416
419 WasmFunction& function = module()->functions[func_index]; 417 WasmFunction& function = module()->functions[func_index];
420 418
421 info->line = func_index; 419 info->line = func_index;
422 info->column = position - function.code_start_offset; 420 info->column = position - function.code_start_offset;
423 info->line_start = function.code_start_offset; 421 info->line_start = function.code_start_offset;
424 info->line_end = function.code_end_offset; 422 info->line_end = function.code_end_offset;
425 return true; 423 return true;
426 } 424 }
OLDNEW
« src/base/logging.h ('K') | « src/wasm/wasm-module.cc ('k') | src/wasm/wasm-text.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698