| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef BASE_JSON_JSON_VALUE_CONVERTER_H_ | 5 #ifndef BASE_JSON_JSON_VALUE_CONVERTER_H_ |
| 6 #define BASE_JSON_JSON_VALUE_CONVERTER_H_ | 6 #define BASE_JSON_JSON_VALUE_CONVERTER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 // The field is not a list. | 252 // The field is not a list. |
| 253 return false; | 253 return false; |
| 254 } | 254 } |
| 255 | 255 |
| 256 field->reserve(list->GetSize()); | 256 field->reserve(list->GetSize()); |
| 257 for (size_t i = 0; i < list->GetSize(); ++i) { | 257 for (size_t i = 0; i < list->GetSize(); ++i) { |
| 258 base::Value* element = NULL; | 258 base::Value* element = NULL; |
| 259 if (!list->Get(i, &element)) | 259 if (!list->Get(i, &element)) |
| 260 continue; | 260 continue; |
| 261 | 261 |
| 262 Element *e = new Element; | 262 scoped_ptr<Element> e(new Element); |
| 263 if (basic_converter_.Convert(*element, e)) { | 263 if (basic_converter_.Convert(*element, e.get())) { |
| 264 field->push_back(e); | 264 field->push_back(e.release()); |
| 265 } else { | 265 } else { |
| 266 DVLOG(1) << "failure at " << i << "-th element"; | 266 DVLOG(1) << "failure at " << i << "-th element"; |
| 267 return false; | 267 return false; |
| 268 } | 268 } |
| 269 } | 269 } |
| 270 return true; | 270 return true; |
| 271 } | 271 } |
| 272 | 272 |
| 273 private: | 273 private: |
| 274 BasicValueConverter<Element> basic_converter_; | 274 BasicValueConverter<Element> basic_converter_; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 286 const base::ListValue* list = NULL; | 286 const base::ListValue* list = NULL; |
| 287 if (!value.GetAsList(&list)) | 287 if (!value.GetAsList(&list)) |
| 288 return false; | 288 return false; |
| 289 | 289 |
| 290 field->reserve(list->GetSize()); | 290 field->reserve(list->GetSize()); |
| 291 for (size_t i = 0; i < list->GetSize(); ++i) { | 291 for (size_t i = 0; i < list->GetSize(); ++i) { |
| 292 base::Value* element = NULL; | 292 base::Value* element = NULL; |
| 293 if (!list->Get(i, &element)) | 293 if (!list->Get(i, &element)) |
| 294 continue; | 294 continue; |
| 295 | 295 |
| 296 NestedType* nested = new NestedType(); | 296 scoped_ptr<NestedType> nested(new NestedType); |
| 297 if (converter_.Convert(*element, nested)) { | 297 if (converter_.Convert(*element, nested.get())) { |
| 298 field->push_back(nested); | 298 field->push_back(nested.release()); |
| 299 } else { | 299 } else { |
| 300 DVLOG(1) << "failure at " << i << "-th element"; | 300 DVLOG(1) << "failure at " << i << "-th element"; |
| 301 return false; | 301 return false; |
| 302 } | 302 } |
| 303 } | 303 } |
| 304 return true; | 304 return true; |
| 305 } | 305 } |
| 306 | 306 |
| 307 private: | 307 private: |
| 308 JSONValueConverter<NestedType> converter_; | 308 JSONValueConverter<NestedType> converter_; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 | 437 |
| 438 private: | 438 private: |
| 439 ScopedVector<internal::FieldConverterBase> fields_; | 439 ScopedVector<internal::FieldConverterBase> fields_; |
| 440 | 440 |
| 441 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter); | 441 DISALLOW_COPY_AND_ASSIGN(JSONValueConverter); |
| 442 }; | 442 }; |
| 443 | 443 |
| 444 } // namespace base | 444 } // namespace base |
| 445 | 445 |
| 446 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_ | 446 #endif // BASE_JSON_JSON_VALUE_CONVERTER_H_ |
| OLD | NEW |