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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/RejectedPromises.cpp

Issue 1979493002: Remove OwnPtr::release() calls in bindings/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "bindings/core/v8/RejectedPromises.h" 5 #include "bindings/core/v8/RejectedPromises.h"
6 6
7 #include "bindings/core/v8/ScopedPersistent.h" 7 #include "bindings/core/v8/ScopedPersistent.h"
8 #include "bindings/core/v8/ScriptCallStack.h" 8 #include "bindings/core/v8/ScriptCallStack.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/ScriptValue.h" 10 #include "bindings/core/v8/ScriptValue.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 m_queue.remove(it); 213 m_queue.remove(it);
214 return; 214 return;
215 } 215 }
216 } 216 }
217 217
218 // Then look it up in the reported errors. 218 // Then look it up in the reported errors.
219 for (size_t i = 0; i < m_reportedAsErrors.size(); ++i) { 219 for (size_t i = 0; i < m_reportedAsErrors.size(); ++i) {
220 OwnPtr<Message>& message = m_reportedAsErrors.at(i); 220 OwnPtr<Message>& message = m_reportedAsErrors.at(i);
221 if (!message->isCollected() && message->hasPromise(data.GetPromise())) { 221 if (!message->isCollected() && message->hasPromise(data.GetPromise())) {
222 message->makePromiseStrong(); 222 message->makePromiseStrong();
223 Platform::current()->currentThread()->scheduler()->timerTaskRunner() ->postTask(BLINK_FROM_HERE, bind(&RejectedPromises::revokeNow, this, passed(mess age.release()))); 223 Platform::current()->currentThread()->scheduler()->timerTaskRunner() ->postTask(BLINK_FROM_HERE, bind(&RejectedPromises::revokeNow, this, passed(std: :move(message))));
224 m_reportedAsErrors.remove(i); 224 m_reportedAsErrors.remove(i);
225 return; 225 return;
226 } 226 }
227 } 227 }
228 } 228 }
229 229
230 PassOwnPtr<RejectedPromises::MessageQueue> RejectedPromises::createMessageQueue( ) 230 PassOwnPtr<RejectedPromises::MessageQueue> RejectedPromises::createMessageQueue( )
231 { 231 {
232 return adoptPtr(new MessageQueue()); 232 return adoptPtr(new MessageQueue());
233 } 233 }
234 234
235 void RejectedPromises::dispose() 235 void RejectedPromises::dispose()
236 { 236 {
237 if (m_queue.isEmpty()) 237 if (m_queue.isEmpty())
238 return; 238 return;
239 239
240 OwnPtr<MessageQueue> queue = createMessageQueue(); 240 OwnPtr<MessageQueue> queue = createMessageQueue();
241 queue->swap(m_queue); 241 queue->swap(m_queue);
242 processQueueNow(queue.release()); 242 processQueueNow(std::move(queue));
243 } 243 }
244 244
245 void RejectedPromises::processQueue() 245 void RejectedPromises::processQueue()
246 { 246 {
247 if (m_queue.isEmpty()) 247 if (m_queue.isEmpty())
248 return; 248 return;
249 249
250 OwnPtr<MessageQueue> queue = createMessageQueue(); 250 OwnPtr<MessageQueue> queue = createMessageQueue();
251 queue->swap(m_queue); 251 queue->swap(m_queue);
252 Platform::current()->currentThread()->scheduler()->timerTaskRunner()->postTa sk(BLINK_FROM_HERE, bind(&RejectedPromises::processQueueNow, PassRefPtr<Rejected Promises>(this), passed(queue.release()))); 252 Platform::current()->currentThread()->scheduler()->timerTaskRunner()->postTa sk(BLINK_FROM_HERE, bind(&RejectedPromises::processQueueNow, PassRefPtr<Rejected Promises>(this), passed(std::move(queue))));
253 } 253 }
254 254
255 void RejectedPromises::processQueueNow(PassOwnPtr<MessageQueue> queue) 255 void RejectedPromises::processQueueNow(PassOwnPtr<MessageQueue> queue)
256 { 256 {
257 // Remove collected handlers. 257 // Remove collected handlers.
258 for (size_t i = 0; i < m_reportedAsErrors.size();) { 258 for (size_t i = 0; i < m_reportedAsErrors.size();) {
259 if (m_reportedAsErrors.at(i)->isCollected()) 259 if (m_reportedAsErrors.at(i)->isCollected())
260 m_reportedAsErrors.remove(i); 260 m_reportedAsErrors.remove(i);
261 else 261 else
262 ++i; 262 ++i;
263 } 263 }
264 264
265 while (!queue->isEmpty()) { 265 while (!queue->isEmpty()) {
266 OwnPtr<Message> message = queue->takeFirst(); 266 OwnPtr<Message> message = queue->takeFirst();
267 if (message->isCollected()) 267 if (message->isCollected())
268 continue; 268 continue;
269 if (!message->hasHandler()) { 269 if (!message->hasHandler()) {
270 message->report(); 270 message->report();
271 message->makePromiseWeak(); 271 message->makePromiseWeak();
272 m_reportedAsErrors.append(message.release()); 272 m_reportedAsErrors.append(std::move(message));
273 if (m_reportedAsErrors.size() > maxReportedHandlersPendingResolution ) 273 if (m_reportedAsErrors.size() > maxReportedHandlersPendingResolution )
274 m_reportedAsErrors.remove(0, maxReportedHandlersPendingResolutio n / 10); 274 m_reportedAsErrors.remove(0, maxReportedHandlersPendingResolutio n / 10);
275 } 275 }
276 } 276 }
277 } 277 }
278 278
279 void RejectedPromises::revokeNow(PassOwnPtr<Message> message) 279 void RejectedPromises::revokeNow(PassOwnPtr<Message> message)
280 { 280 {
281 message->revoke(); 281 message->revoke();
282 } 282 }
283 283
284 } // namespace blink 284 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698