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

Side by Side Diff: chrome/installer/util/registry_key_backup.cc

Issue 1548153002: Switch to standard integer types in chrome/. (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
« no previous file with comments | « chrome/installer/util/registry_key_backup.h ('k') | chrome/installer/util/registry_test_data.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/installer/util/registry_key_backup.h" 5 #include "chrome/installer/util/registry_key_backup.h"
6 6
7 #include <stdint.h>
8
7 #include <algorithm> 9 #include <algorithm>
8 #include <map> 10 #include <map>
9 #include <utility> 11 #include <utility>
10 #include <vector> 12 #include <vector>
11 13
12 #include "base/logging.h" 14 #include "base/logging.h"
13 #include "base/win/registry.h" 15 #include "base/win/registry.h"
14 16
15 using base::win::RegKey; 17 using base::win::RegKey;
16 18
17 namespace { 19 namespace {
18 20
19 const REGSAM kKeyReadNoNotify = (KEY_READ) & ~(KEY_NOTIFY); 21 const REGSAM kKeyReadNoNotify = (KEY_READ) & ~(KEY_NOTIFY);
20 22
21 // A container for a registry value. 23 // A container for a registry value.
22 class ValueData { 24 class ValueData {
23 public: 25 public:
24 ValueData(); 26 ValueData();
25 ~ValueData(); 27 ~ValueData();
26 28
27 // Initializes this object with a name (the first |name_size| characters in 29 // Initializes this object with a name (the first |name_size| characters in
28 // |name_buffer|, |type|, and data (the first |data_size| bytes in |data|). 30 // |name_buffer|, |type|, and data (the first |data_size| bytes in |data|).
29 void Initialize(const wchar_t* name_buffer, DWORD name_size, 31 void Initialize(const wchar_t* name_buffer,
30 DWORD type, const uint8* data, DWORD data_size); 32 DWORD name_size,
33 DWORD type,
34 const uint8_t* data,
35 DWORD data_size);
31 36
32 // The possibly empty name of this value. 37 // The possibly empty name of this value.
33 const std::wstring& name_str() const { return name_; } 38 const std::wstring& name_str() const { return name_; }
34 39
35 // The name of this value, or NULL for the default (unnamed) value. 40 // The name of this value, or NULL for the default (unnamed) value.
36 const wchar_t* name() const { return name_.empty() ? NULL : name_.c_str(); } 41 const wchar_t* name() const { return name_.empty() ? NULL : name_.c_str(); }
37 42
38 // The type of this value. 43 // The type of this value.
39 DWORD type() const { return type_; } 44 DWORD type() const { return type_; }
40 45
41 // A pointer to a buffer of |data_len()| bytes containing the value's data, 46 // A pointer to a buffer of |data_len()| bytes containing the value's data,
42 // or NULL if the value has no data. 47 // or NULL if the value has no data.
43 const uint8* data() const { return data_.empty() ? NULL : &data_[0]; } 48 const uint8_t* data() const { return data_.empty() ? NULL : &data_[0]; }
44 49
45 // The size, in bytes, of the value's data. 50 // The size, in bytes, of the value's data.
46 DWORD data_len() const { return static_cast<DWORD>(data_.size()); } 51 DWORD data_len() const { return static_cast<DWORD>(data_.size()); }
47 52
48 private: 53 private:
49 // This value's name, or the empty string if this is the default (unnamed) 54 // This value's name, or the empty string if this is the default (unnamed)
50 // value. 55 // value.
51 std::wstring name_; 56 std::wstring name_;
52 // This value's data. 57 // This value's data.
53 std::vector<uint8> data_; 58 std::vector<uint8_t> data_;
54 // This value's type (e.g., REG_DWORD, REG_SZ, REG_QWORD, etc). 59 // This value's type (e.g., REG_DWORD, REG_SZ, REG_QWORD, etc).
55 DWORD type_; 60 DWORD type_;
56 61
57 // Copy constructible and assignable for use in STL containers. 62 // Copy constructible and assignable for use in STL containers.
58 }; 63 };
59 64
60 } // namespace 65 } // namespace
61 66
62 // A container for a registry key, its values, and its subkeys. 67 // A container for a registry key, its values, and its subkeys.
63 class RegistryKeyBackup::KeyData { 68 class RegistryKeyBackup::KeyData {
(...skipping 21 matching lines...) Expand all
85 90
86 // Copy constructible and assignable for use in STL containers. 91 // Copy constructible and assignable for use in STL containers.
87 }; 92 };
88 93
89 ValueData::ValueData() : type_(REG_NONE) { 94 ValueData::ValueData() : type_(REG_NONE) {
90 } 95 }
91 96
92 ValueData::~ValueData() { 97 ValueData::~ValueData() {
93 } 98 }
94 99
95 void ValueData::Initialize( 100 void ValueData::Initialize(const wchar_t* name_buffer,
96 const wchar_t* name_buffer, 101 DWORD name_size,
97 DWORD name_size, 102 DWORD type,
98 DWORD type, 103 const uint8_t* data,
99 const uint8* data, 104 DWORD data_size) {
100 DWORD data_size) {
101 name_.assign(name_buffer, name_size); 105 name_.assign(name_buffer, name_size);
102 type_ = type; 106 type_ = type;
103 data_.assign(data, data + data_size); 107 data_.assign(data, data + data_size);
104 } 108 }
105 109
106 RegistryKeyBackup::KeyData::KeyData() { 110 RegistryKeyBackup::KeyData::KeyData() {
107 } 111 }
108 112
109 RegistryKeyBackup::KeyData::~KeyData() { 113 RegistryKeyBackup::KeyData::~KeyData() {
110 } 114 }
(...skipping 14 matching lines...) Expand all
125 if (result != ERROR_SUCCESS) { 129 if (result != ERROR_SUCCESS) {
126 LOG(ERROR) << "Failed getting info of key to backup, result: " << result; 130 LOG(ERROR) << "Failed getting info of key to backup, result: " << result;
127 return false; 131 return false;
128 } 132 }
129 DWORD max_name_len = std::max(max_subkey_name_len, max_value_name_len) + 1; 133 DWORD max_name_len = std::max(max_subkey_name_len, max_value_name_len) + 1;
130 std::vector<wchar_t> name_buffer(max_name_len); 134 std::vector<wchar_t> name_buffer(max_name_len);
131 135
132 // Backup the values. 136 // Backup the values.
133 if (num_values != 0) { 137 if (num_values != 0) {
134 values.reserve(num_values); 138 values.reserve(num_values);
135 std::vector<uint8> value_buffer(max_value_len != 0 ? max_value_len : 1); 139 std::vector<uint8_t> value_buffer(max_value_len != 0 ? max_value_len : 1);
136 DWORD name_size = 0; 140 DWORD name_size = 0;
137 DWORD value_type = REG_NONE; 141 DWORD value_type = REG_NONE;
138 DWORD value_size = 0; 142 DWORD value_size = 0;
139 143
140 for (DWORD i = 0; i < num_values; ) { 144 for (DWORD i = 0; i < num_values; ) {
141 name_size = static_cast<DWORD>(name_buffer.size()); 145 name_size = static_cast<DWORD>(name_buffer.size());
142 value_size = static_cast<DWORD>(value_buffer.size()); 146 value_size = static_cast<DWORD>(value_buffer.size());
143 result = RegEnumValue(key.Handle(), i, &name_buffer[0], &name_size, 147 result = RegEnumValue(key.Handle(), i, &name_buffer[0], &name_size,
144 NULL, &value_type, &value_buffer[0], &value_size); 148 NULL, &value_type, &value_buffer[0], &value_size);
145 switch (result) { 149 switch (result) {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 } else { 323 } else {
320 success = key_data_->WriteTo(&dest_key); 324 success = key_data_->WriteTo(&dest_key);
321 LOG_IF(ERROR, !success) << "Failed to write key data."; 325 LOG_IF(ERROR, !success) << "Failed to write key data.";
322 } 326 }
323 } else { 327 } else {
324 success = true; 328 success = true;
325 } 329 }
326 330
327 return success; 331 return success;
328 } 332 }
OLDNEW
« no previous file with comments | « chrome/installer/util/registry_key_backup.h ('k') | chrome/installer/util/registry_test_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698