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

Side by Side Diff: webkit/glue/plugins/pepper_resource_tracker.cc

Issue 5682008: Make members of Singleton<T> private and only visible to the singleton type. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 years 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 | Annotate | Revision Log
OLDNEW
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 "webkit/glue/plugins/pepper_resource_tracker.h" 5 #include "webkit/glue/plugins/pepper_resource_tracker.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "base/lazy_instance.h"
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/rand_util.h" 12 #include "base/rand_util.h"
12 #include "ppapi/c/pp_resource.h" 13 #include "ppapi/c/pp_resource.h"
13 #include "webkit/glue/plugins/pepper_resource.h" 14 #include "webkit/glue/plugins/pepper_resource.h"
14 15
16 static base::LazyInstance<pepper::ResourceTracker> g_resource_tracker(
17 base::LINKER_INITIALIZED);
18
15 namespace pepper { 19 namespace pepper {
16 20
17 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const { 21 scoped_refptr<Resource> ResourceTracker::GetResource(PP_Resource res) const {
18 ResourceMap::const_iterator result = live_resources_.find(res); 22 ResourceMap::const_iterator result = live_resources_.find(res);
19 if (result == live_resources_.end()) { 23 if (result == live_resources_.end()) {
20 return scoped_refptr<Resource>(); 24 return scoped_refptr<Resource>();
21 } 25 }
22 return result->second.first; 26 return result->second.first;
23 } 27 }
24 28
25 // static 29 // static
26 ResourceTracker* ResourceTracker::singleton_override_ = NULL; 30 ResourceTracker* ResourceTracker::singleton_override_ = NULL;
27 31
28 ResourceTracker::ResourceTracker() 32 ResourceTracker::ResourceTracker()
29 : last_id_(0) { 33 : last_id_(0) {
30 } 34 }
31 35
32 ResourceTracker::~ResourceTracker() { 36 ResourceTracker::~ResourceTracker() {
33 } 37 }
34 38
35 // static 39 // static
36 ResourceTracker* ResourceTracker::Get() { 40 ResourceTracker* ResourceTracker::Get() {
37 if (singleton_override_) 41 if (singleton_override_)
38 return singleton_override_; 42 return singleton_override_;
39 return Singleton<ResourceTracker>::get(); 43 return g_resource_tracker.Pointer();
40 } 44 }
41 45
42 PP_Resource ResourceTracker::AddResource(Resource* resource) { 46 PP_Resource ResourceTracker::AddResource(Resource* resource) {
43 // If the plugin manages to create 4B resources... 47 // If the plugin manages to create 4B resources...
44 if (last_id_ == std::numeric_limits<PP_Resource>::max()) { 48 if (last_id_ == std::numeric_limits<PP_Resource>::max()) {
45 return 0; 49 return 0;
46 } 50 }
47 // Add the resource with plugin use-count 1. 51 // Add the resource with plugin use-count 1.
48 ++last_id_; 52 ++last_id_;
49 live_resources_.insert(std::make_pair(last_id_, std::make_pair(resource, 1))); 53 live_resources_.insert(std::make_pair(last_id_, std::make_pair(resource, 1)));
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 singleton_override_ = tracker; 184 singleton_override_ = tracker;
181 } 185 }
182 186
183 // static 187 // static
184 void ResourceTracker::ClearSingletonOverride() { 188 void ResourceTracker::ClearSingletonOverride() {
185 DCHECK(singleton_override_); 189 DCHECK(singleton_override_);
186 singleton_override_ = NULL; 190 singleton_override_ = NULL;
187 } 191 }
188 192
189 } // namespace pepper 193 } // namespace pepper
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698