OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 | 307 |
308 if (!m_scheduledEventTimer.isActive()) | 308 if (!m_scheduledEventTimer.isActive()) |
309 m_scheduledEventTimer.startOneShot(0, FROM_HERE); | 309 m_scheduledEventTimer.startOneShot(0, FROM_HERE); |
310 } | 310 } |
311 | 311 |
312 void RTCDataChannel::scheduledEventTimerFired(Timer<RTCDataChannel>*) | 312 void RTCDataChannel::scheduledEventTimerFired(Timer<RTCDataChannel>*) |
313 { | 313 { |
314 if (m_stopped) | 314 if (m_stopped) |
315 return; | 315 return; |
316 | 316 |
317 WillBeHeapVector<RefPtrWillBeMember<Event> > events; | 317 WillBeHeapVector<RefPtrWillBeMember<Event>> events; |
318 events.swap(m_scheduledEvents); | 318 events.swap(m_scheduledEvents); |
319 | 319 |
320 WillBeHeapVector<RefPtrWillBeMember<Event> >::iterator it = events.begin(); | 320 WillBeHeapVector<RefPtrWillBeMember<Event>>::iterator it = events.begin(); |
321 for (; it != events.end(); ++it) | 321 for (; it != events.end(); ++it) |
322 dispatchEvent((*it).release()); | 322 dispatchEvent((*it).release()); |
323 | 323 |
324 events.clear(); | 324 events.clear(); |
325 } | 325 } |
326 | 326 |
327 void RTCDataChannel::clearWeakMembers(Visitor* visitor) | 327 void RTCDataChannel::clearWeakMembers(Visitor* visitor) |
328 { | 328 { |
329 if (visitor->isAlive(m_connection)) | 329 if (visitor->isAlive(m_connection)) |
330 return; | 330 return; |
331 stop(); | 331 stop(); |
332 m_connection = nullptr; | 332 m_connection = nullptr; |
333 } | 333 } |
334 | 334 |
335 void RTCDataChannel::trace(Visitor* visitor) | 335 void RTCDataChannel::trace(Visitor* visitor) |
336 { | 336 { |
337 visitor->trace(m_scheduledEvents); | 337 visitor->trace(m_scheduledEvents); |
338 visitor->registerWeakMembers<RTCDataChannel, &RTCDataChannel::clearWeakMembe
rs>(this); | 338 visitor->registerWeakMembers<RTCDataChannel, &RTCDataChannel::clearWeakMembe
rs>(this); |
339 RefCountedGarbageCollectedEventTargetWithInlineData<RTCDataChannel>::trace(v
isitor); | 339 RefCountedGarbageCollectedEventTargetWithInlineData<RTCDataChannel>::trace(v
isitor); |
340 } | 340 } |
341 | 341 |
342 } // namespace blink | 342 } // namespace blink |
OLD | NEW |