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

Side by Side Diff: src/views/SkEventSink.cpp

Issue 1316233002: Style Change: NULL->nullptr (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-08-27 (Thursday) 10:25:06 EDT Created 5 years, 3 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 | « src/views/SkEvent.cpp ('k') | src/views/SkOSMenu.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "SkEventSink.h" 10 #include "SkEventSink.h"
11 #include "SkMutex.h" 11 #include "SkMutex.h"
12 #include "SkTagList.h" 12 #include "SkTagList.h"
13 #include "SkTime.h" 13 #include "SkTime.h"
14 14
15 class SkEventSink_Globals { 15 class SkEventSink_Globals {
16 public: 16 public:
17 SkEventSink_Globals() { 17 SkEventSink_Globals() {
18 fNextSinkID = 0; 18 fNextSinkID = 0;
19 fSinkHead = NULL; 19 fSinkHead = nullptr;
20 } 20 }
21 21
22 SkMutex fSinkMutex; 22 SkMutex fSinkMutex;
23 SkEventSinkID fNextSinkID; 23 SkEventSinkID fNextSinkID;
24 SkEventSink* fSinkHead; 24 SkEventSink* fSinkHead;
25 }; 25 };
26 26
27 static SkEventSink_Globals& getGlobals() { 27 static SkEventSink_Globals& getGlobals() {
28 // leak this, so we don't incur any shutdown perf hit 28 // leak this, so we don't incur any shutdown perf hit
29 static SkEventSink_Globals* gGlobals = new SkEventSink_Globals; 29 static SkEventSink_Globals* gGlobals = new SkEventSink_Globals;
30 return *gGlobals; 30 return *gGlobals;
31 } 31 }
32 32
33 SkEventSink::SkEventSink() : fTagHead(NULL) { 33 SkEventSink::SkEventSink() : fTagHead(nullptr) {
34 SkEventSink_Globals& globals = getGlobals(); 34 SkEventSink_Globals& globals = getGlobals();
35 35
36 globals.fSinkMutex.acquire(); 36 globals.fSinkMutex.acquire();
37 37
38 fID = ++globals.fNextSinkID; 38 fID = ++globals.fNextSinkID;
39 fNextSink = globals.fSinkHead; 39 fNextSink = globals.fSinkHead;
40 globals.fSinkHead = this; 40 globals.fSinkHead = this;
41 41
42 globals.fSinkMutex.release(); 42 globals.fSinkMutex.release();
43 } 43 }
44 44
45 SkEventSink::~SkEventSink() { 45 SkEventSink::~SkEventSink() {
46 SkEventSink_Globals& globals = getGlobals(); 46 SkEventSink_Globals& globals = getGlobals();
47 47
48 if (fTagHead) 48 if (fTagHead)
49 SkTagList::DeleteAll(fTagHead); 49 SkTagList::DeleteAll(fTagHead);
50 50
51 globals.fSinkMutex.acquire(); 51 globals.fSinkMutex.acquire();
52 52
53 SkEventSink* sink = globals.fSinkHead; 53 SkEventSink* sink = globals.fSinkHead;
54 SkEventSink* prev = NULL; 54 SkEventSink* prev = nullptr;
55 55
56 for (;;) { 56 for (;;) {
57 SkEventSink* next = sink->fNextSink; 57 SkEventSink* next = sink->fNextSink;
58 if (sink == this) { 58 if (sink == this) {
59 if (prev) { 59 if (prev) {
60 prev->fNextSink = next; 60 prev->fNextSink = next;
61 } else { 61 } else {
62 globals.fSinkHead = next; 62 globals.fSinkHead = next;
63 } 63 }
64 break; 64 break;
(...skipping 17 matching lines...) Expand all
82 return false; 82 return false;
83 } 83 }
84 84
85 bool SkEventSink::onQuery(SkEvent*) { 85 bool SkEventSink::onQuery(SkEvent*) {
86 return false; 86 return false;
87 } 87 }
88 88
89 /////////////////////////////////////////////////////////////////////////////// 89 ///////////////////////////////////////////////////////////////////////////////
90 90
91 SkTagList* SkEventSink::findTagList(U8CPU tag) const { 91 SkTagList* SkEventSink::findTagList(U8CPU tag) const {
92 return fTagHead ? SkTagList::Find(fTagHead, tag) : NULL; 92 return fTagHead ? SkTagList::Find(fTagHead, tag) : nullptr;
93 } 93 }
94 94
95 void SkEventSink::addTagList(SkTagList* rec) { 95 void SkEventSink::addTagList(SkTagList* rec) {
96 SkASSERT(rec); 96 SkASSERT(rec);
97 SkASSERT(fTagHead == NULL || SkTagList::Find(fTagHead, rec->fTag) == NULL); 97 SkASSERT(fTagHead == nullptr || SkTagList::Find(fTagHead, rec->fTag) == null ptr);
98 98
99 rec->fNext = fTagHead; 99 rec->fNext = fTagHead;
100 fTagHead = rec; 100 fTagHead = rec;
101 } 101 }
102 102
103 void SkEventSink::removeTagList(U8CPU tag) { 103 void SkEventSink::removeTagList(U8CPU tag) {
104 if (fTagHead) { 104 if (fTagHead) {
105 SkTagList::DeleteTag(&fTagHead, tag); 105 SkTagList::DeleteTag(&fTagHead, tag);
106 } 106 }
107 } 107 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 memcpy(next->fIDs, prev->fIDs, count * sizeof(SkEventSinkID)); 155 memcpy(next->fIDs, prev->fIDs, count * sizeof(SkEventSinkID));
156 this->removeTagList(kListeners_SkTagList); 156 this->removeTagList(kListeners_SkTagList);
157 } 157 }
158 next->fIDs[count] = id; 158 next->fIDs[count] = id;
159 this->addTagList(next); 159 this->addTagList(next);
160 } 160 }
161 161
162 void SkEventSink::copyListeners(const SkEventSink& sink) 162 void SkEventSink::copyListeners(const SkEventSink& sink)
163 { 163 {
164 SkListenersTagList* sinkList = (SkListenersTagList*)sink.findTagList(kListen ers_SkTagList); 164 SkListenersTagList* sinkList = (SkListenersTagList*)sink.findTagList(kListen ers_SkTagList);
165 if (sinkList == NULL) 165 if (sinkList == nullptr)
166 return; 166 return;
167 SkASSERT(sinkList->countListners() > 0); 167 SkASSERT(sinkList->countListners() > 0);
168 const SkEventSinkID* iter = sinkList->fIDs; 168 const SkEventSinkID* iter = sinkList->fIDs;
169 const SkEventSinkID* stop = iter + sinkList->countListners(); 169 const SkEventSinkID* stop = iter + sinkList->countListners();
170 while (iter < stop) 170 while (iter < stop)
171 addListenerID(*iter++); 171 addListenerID(*iter++);
172 } 172 }
173 173
174 void SkEventSink::removeListenerID(SkEventSinkID id) 174 void SkEventSink::removeListenerID(SkEventSinkID id)
175 { 175 {
176 if (id == 0) 176 if (id == 0)
177 return; 177 return;
178 178
179 SkListenersTagList* list = (SkListenersTagList*)this->findTagList(kListeners _SkTagList); 179 SkListenersTagList* list = (SkListenersTagList*)this->findTagList(kListeners _SkTagList);
180 180
181 if (list == NULL) 181 if (list == nullptr)
182 return; 182 return;
183 183
184 int index = list->find(id); 184 int index = list->find(id);
185 if (index >= 0) 185 if (index >= 0)
186 { 186 {
187 int count = list->countListners(); 187 int count = list->countListners();
188 SkASSERT(count > 0); 188 SkASSERT(count > 0);
189 if (count == 1) 189 if (count == 1)
190 this->removeTagList(kListeners_SkTagList); 190 this->removeTagList(kListeners_SkTagList);
191 else 191 else
192 { 192 {
193 // overwrite without resize/reallocating our struct (for speed) 193 // overwrite without resize/reallocating our struct (for speed)
194 list->fIDs[index] = list->fIDs[count - 1]; 194 list->fIDs[index] = list->fIDs[count - 1];
195 list->fExtra16 = SkToU16(count - 1); 195 list->fExtra16 = SkToU16(count - 1);
196 } 196 }
197 } 197 }
198 } 198 }
199 199
200 bool SkEventSink::hasListeners() const 200 bool SkEventSink::hasListeners() const
201 { 201 {
202 return this->findTagList(kListeners_SkTagList) != NULL; 202 return this->findTagList(kListeners_SkTagList) != nullptr;
203 } 203 }
204 204
205 void SkEventSink::postToListeners(const SkEvent& evt, SkMSec delay) { 205 void SkEventSink::postToListeners(const SkEvent& evt, SkMSec delay) {
206 SkListenersTagList* list = (SkListenersTagList*)this->findTagList(kListeners _SkTagList); 206 SkListenersTagList* list = (SkListenersTagList*)this->findTagList(kListeners _SkTagList);
207 if (list) { 207 if (list) {
208 SkASSERT(list->countListners() > 0); 208 SkASSERT(list->countListners() > 0);
209 const SkEventSinkID* iter = list->fIDs; 209 const SkEventSinkID* iter = list->fIDs;
210 const SkEventSinkID* stop = iter + list->countListners(); 210 const SkEventSinkID* stop = iter + list->countListners();
211 while (iter < stop) { 211 while (iter < stop) {
212 SkEvent* copy = new SkEvent(evt); 212 SkEvent* copy = new SkEvent(evt);
(...skipping 26 matching lines...) Expand all
239 SkEventSink_Globals& globals = getGlobals(); 239 SkEventSink_Globals& globals = getGlobals();
240 SkAutoMutexAcquire ac(globals.fSinkMutex); 240 SkAutoMutexAcquire ac(globals.fSinkMutex);
241 SkEventSink* sink = globals.fSinkHead; 241 SkEventSink* sink = globals.fSinkHead;
242 242
243 while (sink) 243 while (sink)
244 { 244 {
245 if (sink->getSinkID() == sinkID) 245 if (sink->getSinkID() == sinkID)
246 return sink; 246 return sink;
247 sink = sink->fNextSink; 247 sink = sink->fNextSink;
248 } 248 }
249 return NULL; 249 return nullptr;
250 } 250 }
251 251
252 //////////////////////////////////////////////////////////////////////////////// //////// 252 //////////////////////////////////////////////////////////////////////////////// ////////
253 //////////////////////////////////////////////////////////////////////////////// //////// 253 //////////////////////////////////////////////////////////////////////////////// ////////
254 254
255 #if 0 // experimental, not tested 255 #if 0 // experimental, not tested
256 256
257 #include "SkMutex.h" 257 #include "SkMutex.h"
258 #include "SkTDict.h" 258 #include "SkTDict.h"
259 259
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 /** Remove all name/id pairs from the system. This is call internally 292 /** Remove all name/id pairs from the system. This is call internally
293 on shutdown, to ensure no memory leaks. It should not be called 293 on shutdown, to ensure no memory leaks. It should not be called
294 before shutdown. 294 before shutdown.
295 */ 295 */
296 void SkEventSink::RemoveAllNamedSinkIDs() 296 void SkEventSink::RemoveAllNamedSinkIDs()
297 { 297 {
298 SkAutoMutexAcquire ac(gNamedSinkMutex); 298 SkAutoMutexAcquire ac(gNamedSinkMutex);
299 (void)gNamedSinkIDs.reset(); 299 (void)gNamedSinkIDs.reset();
300 } 300 }
301 #endif 301 #endif
OLDNEW
« no previous file with comments | « src/views/SkEvent.cpp ('k') | src/views/SkOSMenu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698