| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium 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 "gin/v8_initializer.h" | 5 #include "gin/v8_initializer.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
| 8 #include "base/debug/alias.h" | 10 #include "base/debug/alias.h" |
| 9 #include "base/files/file.h" | 11 #include "base/files/file.h" |
| 10 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
| 11 #include "base/files/memory_mapped_file.h" | 13 #include "base/files/memory_mapped_file.h" |
| 12 #include "base/logging.h" | 14 #include "base/logging.h" |
| 13 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
| 14 #include "base/metrics/histogram.h" | 16 #include "base/metrics/histogram.h" |
| 15 #include "base/rand_util.h" | 17 #include "base/rand_util.h" |
| 16 #include "base/strings/sys_string_conversions.h" | 18 #include "base/strings/sys_string_conversions.h" |
| 17 #include "base/threading/platform_thread.h" | 19 #include "base/threading/platform_thread.h" |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 #endif | 281 #endif |
| 280 &g_mapped_natives); | 282 &g_mapped_natives); |
| 281 if (result != V8_LOAD_SUCCESS) { | 283 if (result != V8_LOAD_SUCCESS) { |
| 282 LOG(FATAL) << "Couldn't mmap v8 natives data file, status code is " | 284 LOG(FATAL) << "Couldn't mmap v8 natives data file, status code is " |
| 283 << static_cast<int>(result); | 285 << static_cast<int>(result); |
| 284 } | 286 } |
| 285 } | 287 } |
| 286 | 288 |
| 287 // static | 289 // static |
| 288 void V8Initializer::LoadV8SnapshotFromFD(base::PlatformFile snapshot_pf, | 290 void V8Initializer::LoadV8SnapshotFromFD(base::PlatformFile snapshot_pf, |
| 289 int64 snapshot_offset, | 291 int64_t snapshot_offset, |
| 290 int64 snapshot_size) { | 292 int64_t snapshot_size) { |
| 291 if (g_mapped_snapshot) | 293 if (g_mapped_snapshot) |
| 292 return; | 294 return; |
| 293 | 295 |
| 294 if (snapshot_pf == kInvalidPlatformFile) | 296 if (snapshot_pf == kInvalidPlatformFile) |
| 295 return; | 297 return; |
| 296 | 298 |
| 297 base::MemoryMappedFile::Region snapshot_region = | 299 base::MemoryMappedFile::Region snapshot_region = |
| 298 base::MemoryMappedFile::Region::kWholeFile; | 300 base::MemoryMappedFile::Region::kWholeFile; |
| 299 if (snapshot_size != 0 || snapshot_offset != 0) { | 301 if (snapshot_size != 0 || snapshot_offset != 0) { |
| 300 snapshot_region.offset = snapshot_offset; | 302 snapshot_region.offset = snapshot_offset; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 311 if (result == V8_LOAD_SUCCESS) { | 313 if (result == V8_LOAD_SUCCESS) { |
| 312 g_snapshot_pf = snapshot_pf; | 314 g_snapshot_pf = snapshot_pf; |
| 313 g_snapshot_region = snapshot_region; | 315 g_snapshot_region = snapshot_region; |
| 314 } | 316 } |
| 315 UMA_HISTOGRAM_ENUMERATION("V8.Initializer.LoadV8Snapshot.Result", result, | 317 UMA_HISTOGRAM_ENUMERATION("V8.Initializer.LoadV8Snapshot.Result", result, |
| 316 V8_LOAD_MAX_VALUE); | 318 V8_LOAD_MAX_VALUE); |
| 317 } | 319 } |
| 318 | 320 |
| 319 // static | 321 // static |
| 320 void V8Initializer::LoadV8NativesFromFD(base::PlatformFile natives_pf, | 322 void V8Initializer::LoadV8NativesFromFD(base::PlatformFile natives_pf, |
| 321 int64 natives_offset, | 323 int64_t natives_offset, |
| 322 int64 natives_size) { | 324 int64_t natives_size) { |
| 323 if (g_mapped_natives) | 325 if (g_mapped_natives) |
| 324 return; | 326 return; |
| 325 | 327 |
| 326 CHECK_NE(natives_pf, kInvalidPlatformFile); | 328 CHECK_NE(natives_pf, kInvalidPlatformFile); |
| 327 | 329 |
| 328 base::MemoryMappedFile::Region natives_region = | 330 base::MemoryMappedFile::Region natives_region = |
| 329 base::MemoryMappedFile::Region::kWholeFile; | 331 base::MemoryMappedFile::Region::kWholeFile; |
| 330 if (natives_size != 0 || natives_offset != 0) { | 332 if (natives_size != 0 || natives_offset != 0) { |
| 331 natives_region.offset = natives_offset; | 333 natives_region.offset = natives_offset; |
| 332 natives_region.size = natives_size; | 334 natives_region.size = natives_size; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 *snapshot_data_out = | 417 *snapshot_data_out = |
| 416 reinterpret_cast<const char*>(g_mapped_snapshot->data()); | 418 reinterpret_cast<const char*>(g_mapped_snapshot->data()); |
| 417 *snapshot_size_out = static_cast<int>(g_mapped_snapshot->length()); | 419 *snapshot_size_out = static_cast<int>(g_mapped_snapshot->length()); |
| 418 } else { | 420 } else { |
| 419 *snapshot_data_out = NULL; | 421 *snapshot_data_out = NULL; |
| 420 *snapshot_size_out = 0; | 422 *snapshot_size_out = 0; |
| 421 } | 423 } |
| 422 } | 424 } |
| 423 | 425 |
| 424 } // namespace gin | 426 } // namespace gin |
| OLD | NEW |