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

Side by Side Diff: ui/gfx/image/image.h

Issue 1096983002: Update usages of std::map to use ScopedPtrMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@passwordmanager-scopedmemory
Patch Set: Rebase. Created 5 years, 5 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 | « sync/sessions/nudge_tracker.cc ('k') | ui/gfx/image/image.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 (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 // An Image wraps an image any flavor, be it platform-native GdkBitmap/NSImage, 5 // An Image wraps an image any flavor, be it platform-native GdkBitmap/NSImage,
6 // or a SkBitmap. This also provides easy conversion to other image types 6 // or a SkBitmap. This also provides easy conversion to other image types
7 // through operator overloading. It will cache the converted representations 7 // through operator overloading. It will cache the converted representations
8 // internally to prevent double-conversion. 8 // internally to prevent double-conversion.
9 // 9 //
10 // The lifetime of both the initial representation and any converted ones are 10 // The lifetime of both the initial representation and any converted ones are
11 // tied to the lifetime of the Image's internal storage. To allow Images to be 11 // tied to the lifetime of the Image's internal storage. To allow Images to be
12 // cheaply passed around by value, the actual image data is stored in a ref- 12 // cheaply passed around by value, the actual image data is stored in a ref-
13 // counted member. When all Images referencing this storage are deleted, the 13 // counted member. When all Images referencing this storage are deleted, the
14 // actual representations are deleted, too. 14 // actual representations are deleted, too.
15 // 15 //
16 // Images can be empty, in which case they have no backing representation. 16 // Images can be empty, in which case they have no backing representation.
17 // Attempting to use an empty Image will result in a crash. 17 // Attempting to use an empty Image will result in a crash.
18 18
19 #ifndef UI_GFX_IMAGE_IMAGE_H_ 19 #ifndef UI_GFX_IMAGE_IMAGE_H_
20 #define UI_GFX_IMAGE_IMAGE_H_ 20 #define UI_GFX_IMAGE_IMAGE_H_
21 21
22 #include <map>
23 #include <vector> 22 #include <vector>
24 23
25 #include "base/basictypes.h" 24 #include "base/basictypes.h"
25 #include "base/containers/scoped_ptr_map.h"
26 #include "base/gtest_prod_util.h" 26 #include "base/gtest_prod_util.h"
27 #include "base/memory/ref_counted_memory.h" 27 #include "base/memory/ref_counted_memory.h"
28 #include "base/memory/scoped_ptr.h" 28 #include "base/memory/scoped_ptr.h"
29 #include "ui/gfx/gfx_export.h" 29 #include "ui/gfx/gfx_export.h"
30 #include "ui/gfx/native_widget_types.h" 30 #include "ui/gfx/native_widget_types.h"
31 31
32 #if defined(OS_MACOSX) && !defined(OS_IOS) 32 #if defined(OS_MACOSX) && !defined(OS_IOS)
33 typedef struct CGColorSpace* CGColorSpaceRef; 33 typedef struct CGColorSpace* CGColorSpaceRef;
34 #endif 34 #endif
35 35
(...skipping 16 matching lines...) Expand all
52 52
53 class GFX_EXPORT Image { 53 class GFX_EXPORT Image {
54 public: 54 public:
55 enum RepresentationType { 55 enum RepresentationType {
56 kImageRepCocoa, 56 kImageRepCocoa,
57 kImageRepCocoaTouch, 57 kImageRepCocoaTouch,
58 kImageRepSkia, 58 kImageRepSkia,
59 kImageRepPNG, 59 kImageRepPNG,
60 }; 60 };
61 61
62 typedef std::map<RepresentationType, internal::ImageRep*> RepresentationMap; 62 typedef base::ScopedPtrMap<RepresentationType, scoped_ptr<internal::ImageRep>>
63 RepresentationMap;
63 64
64 // Creates an empty image with no representations. 65 // Creates an empty image with no representations.
65 Image(); 66 Image();
66 67
67 // Creates a new image by copying the raw PNG-encoded input for use as the 68 // Creates a new image by copying the raw PNG-encoded input for use as the
68 // default representation. 69 // default representation.
69 explicit Image(const std::vector<ImagePNGRep>& image_reps); 70 explicit Image(const std::vector<ImagePNGRep>& image_reps);
70 71
71 // Creates a new image by copying the ImageSkia for use as the default 72 // Creates a new image by copying the ImageSkia for use as the default
72 // representation. 73 // representation.
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 // be cheaply copied. 194 // be cheaply copied.
194 scoped_refptr<internal::ImageStorage> storage_; 195 scoped_refptr<internal::ImageStorage> storage_;
195 196
196 friend class ::ImageTest; 197 friend class ::ImageTest;
197 friend class ::ImageMacTest; 198 friend class ::ImageMacTest;
198 }; 199 };
199 200
200 } // namespace gfx 201 } // namespace gfx
201 202
202 #endif // UI_GFX_IMAGE_IMAGE_H_ 203 #endif // UI_GFX_IMAGE_IMAGE_H_
OLDNEW
« no previous file with comments | « sync/sessions/nudge_tracker.cc ('k') | ui/gfx/image/image.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698