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

Side by Side Diff: components/translate/content/renderer/data_file_renderer_cld_data_provider.cc

Issue 1549993003: Switch to standard integer types in components/, part 4 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // NOT DEAD CODE! 5 // NOT DEAD CODE!
6 // This code isn't dead, even if it isn't currently being used. Please refer to: 6 // This code isn't dead, even if it isn't currently being used. Please refer to:
7 // https://www.chromium.org/developers/how-tos/compact-language-detector-cld-dat a-source-configuration 7 // https://www.chromium.org/developers/how-tos/compact-language-detector-cld-dat a-source-configuration
8 8
9 #include "data_file_renderer_cld_data_provider.h" 9 #include "data_file_renderer_cld_data_provider.h"
10 10
11 #include "base/basictypes.h"
12 #include "base/files/file.h" 11 #include "base/files/file.h"
13 #include "base/files/memory_mapped_file.h" 12 #include "base/files/memory_mapped_file.h"
14 #include "base/lazy_instance.h" 13 #include "base/lazy_instance.h"
15 #include "base/logging.h" 14 #include "base/logging.h"
16 #include "components/translate/content/common/data_file_cld_data_provider_messag es.h" 15 #include "components/translate/content/common/data_file_cld_data_provider_messag es.h"
17 #include "content/public/renderer/render_frame_observer.h" 16 #include "content/public/renderer/render_frame_observer.h"
18 #include "ipc/ipc_message.h" 17 #include "ipc/ipc_message.h"
19 #include "ipc/ipc_message_macros.h" 18 #include "ipc/ipc_message_macros.h"
20 #include "ipc/ipc_platform_file.h" 19 #include "ipc/ipc_platform_file.h"
21 #include "third_party/cld_2/src/public/compact_lang_det.h" 20 #include "third_party/cld_2/src/public/compact_lang_det.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 return CLD2::isDataLoaded(); // ground truth, independent of our state. 64 return CLD2::isDataLoaded(); // ground truth, independent of our state.
66 } 65 }
67 66
68 void DataFileRendererCldDataProvider::SetCldAvailableCallback( 67 void DataFileRendererCldDataProvider::SetCldAvailableCallback(
69 base::Callback<void(void)> callback) { 68 base::Callback<void(void)> callback) {
70 cld_available_callback_ = callback; 69 cld_available_callback_ = callback;
71 } 70 }
72 71
73 void DataFileRendererCldDataProvider::OnCldDataAvailable( 72 void DataFileRendererCldDataProvider::OnCldDataAvailable(
74 const IPC::PlatformFileForTransit ipc_file_handle, 73 const IPC::PlatformFileForTransit ipc_file_handle,
75 const uint64 data_offset, 74 const uint64_t data_offset,
76 const uint64 data_length) { 75 const uint64_t data_length) {
77 LoadCldData(IPC::PlatformFileForTransitToFile(ipc_file_handle), 76 LoadCldData(IPC::PlatformFileForTransitToFile(ipc_file_handle),
78 data_offset, 77 data_offset,
79 data_length); 78 data_length);
80 } 79 }
81 80
82 void DataFileRendererCldDataProvider::LoadCldData(base::File file, 81 void DataFileRendererCldDataProvider::LoadCldData(base::File file,
83 const uint64 data_offset, 82 const uint64_t data_offset,
84 const uint64 data_length) { 83 const uint64_t data_length) {
85 // Terminate immediately if data is already loaded. 84 // Terminate immediately if data is already loaded.
86 if (IsCldDataAvailable()) 85 if (IsCldDataAvailable())
87 return; 86 return;
88 87
89 if (!file.IsValid()) { 88 if (!file.IsValid()) {
90 LOG(ERROR) << "Can't find the CLD data file."; 89 LOG(ERROR) << "Can't find the CLD data file.";
91 return; 90 return;
92 } 91 }
93 92
94 // mmap the file 93 // mmap the file
95 g_cld_mmap.Get().value = new base::MemoryMappedFile(); 94 g_cld_mmap.Get().value = new base::MemoryMappedFile();
96 bool initialized = g_cld_mmap.Get().value->Initialize(file.Pass()); 95 bool initialized = g_cld_mmap.Get().value->Initialize(file.Pass());
97 if (!initialized) { 96 if (!initialized) {
98 LOG(ERROR) << "mmap initialization failed"; 97 LOG(ERROR) << "mmap initialization failed";
99 delete g_cld_mmap.Get().value; 98 delete g_cld_mmap.Get().value;
100 g_cld_mmap.Get().value = NULL; 99 g_cld_mmap.Get().value = NULL;
101 return; 100 return;
102 } 101 }
103 102
104 // Sanity checks 103 // Sanity checks
105 uint64 max_int32 = std::numeric_limits<int32>::max(); 104 uint64_t max_int32 = std::numeric_limits<int32_t>::max();
106 if (data_length + data_offset > g_cld_mmap.Get().value->length() || 105 if (data_length + data_offset > g_cld_mmap.Get().value->length() ||
107 data_length > max_int32) { // max signed 32 bit integer 106 data_length > max_int32) { // max signed 32 bit integer
108 LOG(ERROR) << "Illegal mmap config: data_offset=" << data_offset 107 LOG(ERROR) << "Illegal mmap config: data_offset=" << data_offset
109 << ", data_length=" << data_length 108 << ", data_length=" << data_length
110 << ", mmap->length()=" << g_cld_mmap.Get().value->length(); 109 << ", mmap->length()=" << g_cld_mmap.Get().value->length();
111 delete g_cld_mmap.Get().value; 110 delete g_cld_mmap.Get().value;
112 g_cld_mmap.Get().value = NULL; 111 g_cld_mmap.Get().value = NULL;
113 return; 112 return;
114 } 113 }
115 114
116 // Initialize the CLD subsystem... and it's all done! 115 // Initialize the CLD subsystem... and it's all done!
117 const uint8* data_ptr = g_cld_mmap.Get().value->data() + data_offset; 116 const uint8_t* data_ptr = g_cld_mmap.Get().value->data() + data_offset;
118 CLD2::loadDataFromRawAddress(data_ptr, data_length); 117 CLD2::loadDataFromRawAddress(data_ptr, data_length);
119 DCHECK(CLD2::isDataLoaded()) << "Failed to load CLD data from mmap"; 118 DCHECK(CLD2::isDataLoaded()) << "Failed to load CLD data from mmap";
120 if (!cld_available_callback_.is_null()) { 119 if (!cld_available_callback_.is_null()) {
121 cld_available_callback_.Run(); 120 cld_available_callback_.Run();
122 } 121 }
123 } 122 }
124 123
125 } // namespace translate 124 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698