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

Side by Side Diff: cc/test/layer_tree_json_parser.cc

Issue 2000803003: Use std::unique_ptr for base::DictionaryValue and base::ListValue's internal store. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More fixes Created 4 years, 7 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 | « base/values.cc ('k') | chrome/browser/banners/app_banner_settings_helper.cc » ('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 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 "cc/test/layer_tree_json_parser.h" 5 #include "cc/test/layer_tree_json_parser.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/test/values_test_util.h" 9 #include "base/test/values_test_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "cc/layers/layer.h" 11 #include "cc/layers/layer.h"
12 #include "cc/layers/nine_patch_layer.h" 12 #include "cc/layers/nine_patch_layer.h"
13 #include "cc/layers/picture_layer.h" 13 #include "cc/layers/picture_layer.h"
14 #include "cc/layers/solid_color_layer.h" 14 #include "cc/layers/solid_color_layer.h"
15 #include "cc/layers/texture_layer.h" 15 #include "cc/layers/texture_layer.h"
16 #include "cc/trees/layer_tree_settings.h" 16 #include "cc/trees/layer_tree_settings.h"
17 17
18 namespace cc { 18 namespace cc {
19 19
20 namespace { 20 namespace {
21 21
22 scoped_refptr<Layer> ParseTreeFromValue(base::Value* val, 22 scoped_refptr<Layer> ParseTreeFromValue(const base::Value& val,
23 ContentLayerClient* content_client) { 23 ContentLayerClient* content_client) {
24 base::DictionaryValue* dict; 24 const base::DictionaryValue* dict;
25 bool success = true; 25 bool success = true;
26 success &= val->GetAsDictionary(&dict); 26 success &= val.GetAsDictionary(&dict);
27 std::string layer_type; 27 std::string layer_type;
28 success &= dict->GetString("LayerType", &layer_type); 28 success &= dict->GetString("LayerType", &layer_type);
29 base::ListValue* list; 29 const base::ListValue* list;
30 success &= dict->GetList("Bounds", &list); 30 success &= dict->GetList("Bounds", &list);
31 int width, height; 31 int width, height;
32 success &= list->GetInteger(0, &width); 32 success &= list->GetInteger(0, &width);
33 success &= list->GetInteger(1, &height); 33 success &= list->GetInteger(1, &height);
34 success &= dict->GetList("Position", &list); 34 success &= dict->GetList("Position", &list);
35 double position_x, position_y; 35 double position_x, position_y;
36 success &= list->GetDouble(0, &position_x); 36 success &= list->GetDouble(0, &position_x);
37 success &= list->GetDouble(1, &position_y); 37 success &= list->GetDouble(1, &position_y);
38 38
39 bool draws_content; 39 bool draws_content;
40 success &= dict->GetBoolean("DrawsContent", &draws_content); 40 success &= dict->GetBoolean("DrawsContent", &draws_content);
41 41
42 scoped_refptr<Layer> new_layer; 42 scoped_refptr<Layer> new_layer;
43 if (layer_type == "SolidColorLayer") { 43 if (layer_type == "SolidColorLayer") {
44 new_layer = SolidColorLayer::Create(); 44 new_layer = SolidColorLayer::Create();
45 } else if (layer_type == "NinePatchLayer") { 45 } else if (layer_type == "NinePatchLayer") {
46 success &= dict->GetList("ImageAperture", &list); 46 success &= dict->GetList("ImageAperture", &list);
47 int aperture_x, aperture_y, aperture_width, aperture_height; 47 int aperture_x, aperture_y, aperture_width, aperture_height;
48 success &= list->GetInteger(0, &aperture_x); 48 success &= list->GetInteger(0, &aperture_x);
49 success &= list->GetInteger(1, &aperture_y); 49 success &= list->GetInteger(1, &aperture_y);
50 success &= list->GetInteger(2, &aperture_width); 50 success &= list->GetInteger(2, &aperture_width);
51 success &= list->GetInteger(3, &aperture_height); 51 success &= list->GetInteger(3, &aperture_height);
52 52
53 base::ListValue* bounds; 53 const base::ListValue* bounds;
54 success &= dict->GetList("ImageBounds", &bounds); 54 success &= dict->GetList("ImageBounds", &bounds);
55 double image_width, image_height; 55 double image_width, image_height;
56 success &= bounds->GetDouble(0, &image_width); 56 success &= bounds->GetDouble(0, &image_width);
57 success &= bounds->GetDouble(1, &image_height); 57 success &= bounds->GetDouble(1, &image_height);
58 58
59 success &= dict->GetList("Border", &list); 59 success &= dict->GetList("Border", &list);
60 int border_x, border_y, border_width, border_height; 60 int border_x, border_y, border_width, border_height;
61 success &= list->GetInteger(0, &border_x); 61 success &= list->GetInteger(0, &border_x);
62 success &= list->GetInteger(1, &border_y); 62 success &= list->GetInteger(1, &border_y);
63 success &= list->GetInteger(2, &border_width); 63 success &= list->GetInteger(2, &border_width);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 success &= dict->GetList("Transform", &list); 144 success &= dict->GetList("Transform", &list);
145 double transform[16]; 145 double transform[16];
146 for (int i = 0; i < 16; ++i) 146 for (int i = 0; i < 16; ++i)
147 success &= list->GetDouble(i, &transform[i]); 147 success &= list->GetDouble(i, &transform[i]);
148 148
149 gfx::Transform layer_transform; 149 gfx::Transform layer_transform;
150 layer_transform.matrix().setColMajord(transform); 150 layer_transform.matrix().setColMajord(transform);
151 new_layer->SetTransform(layer_transform); 151 new_layer->SetTransform(layer_transform);
152 152
153 success &= dict->GetList("Children", &list); 153 success &= dict->GetList("Children", &list);
154 for (base::ListValue::const_iterator it = list->begin(); 154 for (const auto& value : *list) {
155 it != list->end(); ++it) { 155 new_layer->AddChild(ParseTreeFromValue(*value, content_client));
156 new_layer->AddChild(ParseTreeFromValue(*it, content_client));
157 } 156 }
158 157
159 if (!success) 158 if (!success)
160 return NULL; 159 return NULL;
161 160
162 return new_layer; 161 return new_layer;
163 } 162 }
164 163
165 } // namespace 164 } // namespace
166 165
167 scoped_refptr<Layer> ParseTreeFromJson(std::string json, 166 scoped_refptr<Layer> ParseTreeFromJson(std::string json,
168 ContentLayerClient* content_client) { 167 ContentLayerClient* content_client) {
169 std::unique_ptr<base::Value> val = base::test::ParseJson(json); 168 std::unique_ptr<base::Value> val = base::test::ParseJson(json);
170 return ParseTreeFromValue(val.get(), content_client); 169 return ParseTreeFromValue(*val, content_client);
171 } 170 }
172 171
173 } // namespace cc 172 } // namespace cc
OLDNEW
« no previous file with comments | « base/values.cc ('k') | chrome/browser/banners/app_banner_settings_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698