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

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

Issue 2822493002: Add a comment about gfx::internal::ImageStorage and RefCountedThreadSafe. (Closed)
Patch Set: Created 3 years, 8 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 | « no previous file | no next file » | 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 #include "ui/gfx/image/image.h" 5 #include "ui/gfx/image/image.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 private: 333 private:
334 NSImage* image_; 334 NSImage* image_;
335 335
336 DISALLOW_COPY_AND_ASSIGN(ImageRepCocoa); 336 DISALLOW_COPY_AND_ASSIGN(ImageRepCocoa);
337 }; 337 };
338 #endif // defined(OS_MACOSX) 338 #endif // defined(OS_MACOSX)
339 339
340 // The Storage class acts similarly to the pixels in a SkBitmap: the Image 340 // The Storage class acts similarly to the pixels in a SkBitmap: the Image
341 // class holds a refptr instance of Storage, which in turn holds all the 341 // class holds a refptr instance of Storage, which in turn holds all the
342 // ImageReps. This way, the Image can be cheaply copied. 342 // ImageReps. This way, the Image can be cheaply copied.
343 //
344 // This class is deliberately not RefCountedThreadSafe. Making it so does not
345 // solve threading issues, as gfx::Image and its internal classes are
346 // themselves not threadsafe.
343 class ImageStorage : public base::RefCounted<ImageStorage> { 347 class ImageStorage : public base::RefCounted<ImageStorage> {
344 public: 348 public:
345 ImageStorage(Image::RepresentationType default_type) 349 ImageStorage(Image::RepresentationType default_type)
346 : default_representation_type_(default_type) 350 : default_representation_type_(default_type)
347 #if defined(OS_MACOSX) && !defined(OS_IOS) 351 #if defined(OS_MACOSX) && !defined(OS_IOS)
348 , 352 ,
349 default_representation_color_space_( 353 default_representation_color_space_(
350 base::mac::GetGenericRGBColorSpace()) 354 base::mac::GetGenericRGBColorSpace())
351 #endif // defined(OS_MACOSX) && !defined(OS_IOS) 355 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
352 { 356 {
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 storage_->representations().insert(std::make_pair(type, std::move(rep))); 765 storage_->representations().insert(std::make_pair(type, std::move(rep)));
762 766
763 // insert should not fail (implies that there was already a representation of 767 // insert should not fail (implies that there was already a representation of
764 // that type in the map). 768 // that type in the map).
765 CHECK(result.second) << "type was already in map."; 769 CHECK(result.second) << "type was already in map.";
766 770
767 return result.first->second.get(); 771 return result.first->second.get();
768 } 772 }
769 773
770 } // namespace gfx 774 } // namespace gfx
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698