OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/win/scoped_variant.h" | 5 #include "base/win/scoped_variant.h" |
| 6 |
6 #include "base/logging.h" | 7 #include "base/logging.h" |
7 | 8 |
8 namespace base { | 9 namespace base { |
9 namespace win { | 10 namespace win { |
10 | 11 |
11 // Global, const instance of an empty variant. | 12 // Global, const instance of an empty variant. |
12 const VARIANT ScopedVariant::kEmptyVariant = {{{VT_EMPTY}}}; | 13 const VARIANT ScopedVariant::kEmptyVariant = {{{VT_EMPTY}}}; |
13 | 14 |
14 ScopedVariant::~ScopedVariant() { | 15 ScopedVariant::~ScopedVariant() { |
15 static_assert(sizeof(ScopedVariant) == sizeof(VARIANT), "ScopedVariantSize"); | 16 static_assert(sizeof(ScopedVariant) == sizeof(VARIANT), "ScopedVariantSize"); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 111 |
111 return ret; | 112 return ret; |
112 } | 113 } |
113 | 114 |
114 void ScopedVariant::Set(const wchar_t* str) { | 115 void ScopedVariant::Set(const wchar_t* str) { |
115 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 116 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
116 var_.vt = VT_BSTR; | 117 var_.vt = VT_BSTR; |
117 var_.bstrVal = ::SysAllocString(str); | 118 var_.bstrVal = ::SysAllocString(str); |
118 } | 119 } |
119 | 120 |
120 void ScopedVariant::Set(int8 i8) { | 121 void ScopedVariant::Set(int8_t i8) { |
121 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 122 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
122 var_.vt = VT_I1; | 123 var_.vt = VT_I1; |
123 var_.cVal = i8; | 124 var_.cVal = i8; |
124 } | 125 } |
125 | 126 |
126 void ScopedVariant::Set(uint8 ui8) { | 127 void ScopedVariant::Set(uint8_t ui8) { |
127 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 128 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
128 var_.vt = VT_UI1; | 129 var_.vt = VT_UI1; |
129 var_.bVal = ui8; | 130 var_.bVal = ui8; |
130 } | 131 } |
131 | 132 |
132 void ScopedVariant::Set(int16 i16) { | 133 void ScopedVariant::Set(int16_t i16) { |
133 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 134 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
134 var_.vt = VT_I2; | 135 var_.vt = VT_I2; |
135 var_.iVal = i16; | 136 var_.iVal = i16; |
136 } | 137 } |
137 | 138 |
138 void ScopedVariant::Set(uint16 ui16) { | 139 void ScopedVariant::Set(uint16_t ui16) { |
139 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 140 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
140 var_.vt = VT_UI2; | 141 var_.vt = VT_UI2; |
141 var_.uiVal = ui16; | 142 var_.uiVal = ui16; |
142 } | 143 } |
143 | 144 |
144 void ScopedVariant::Set(int32 i32) { | 145 void ScopedVariant::Set(int32_t i32) { |
145 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 146 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
146 var_.vt = VT_I4; | 147 var_.vt = VT_I4; |
147 var_.lVal = i32; | 148 var_.lVal = i32; |
148 } | 149 } |
149 | 150 |
150 void ScopedVariant::Set(uint32 ui32) { | 151 void ScopedVariant::Set(uint32_t ui32) { |
151 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 152 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
152 var_.vt = VT_UI4; | 153 var_.vt = VT_UI4; |
153 var_.ulVal = ui32; | 154 var_.ulVal = ui32; |
154 } | 155 } |
155 | 156 |
156 void ScopedVariant::Set(int64 i64) { | 157 void ScopedVariant::Set(int64_t i64) { |
157 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 158 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
158 var_.vt = VT_I8; | 159 var_.vt = VT_I8; |
159 var_.llVal = i64; | 160 var_.llVal = i64; |
160 } | 161 } |
161 | 162 |
162 void ScopedVariant::Set(uint64 ui64) { | 163 void ScopedVariant::Set(uint64_t ui64) { |
163 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 164 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
164 var_.vt = VT_UI8; | 165 var_.vt = VT_UI8; |
165 var_.ullVal = ui64; | 166 var_.ullVal = ui64; |
166 } | 167 } |
167 | 168 |
168 void ScopedVariant::Set(float r32) { | 169 void ScopedVariant::Set(float r32) { |
169 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; | 170 DCHECK(!IsLeakableVarType(var_.vt)) << "leaking variant: " << var_.vt; |
170 var_.vt = VT_R4; | 171 var_.vt = VT_R4; |
171 var_.fltVal = r32; | 172 var_.fltVal = r32; |
172 } | 173 } |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 | 268 |
268 if (!leakable && (vt & VT_ARRAY) != 0) { | 269 if (!leakable && (vt & VT_ARRAY) != 0) { |
269 leakable = true; | 270 leakable = true; |
270 } | 271 } |
271 | 272 |
272 return leakable; | 273 return leakable; |
273 } | 274 } |
274 | 275 |
275 } // namespace win | 276 } // namespace win |
276 } // namespace base | 277 } // namespace base |
OLD | NEW |