Commit e9795d60 authored by sigbjornf@opera.com's avatar sigbjornf@opera.com

Oilpan: trace Event.currentTarget.

Strongly keep track of the current target.

For tidiness, also trace the 'parent' back reference on the XHR progress
event throttling part object.

R=zerny@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/330273002

git-svn-id: svn://svn.chromium.org/blink/trunk@176112 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent a16df9db
......@@ -47,7 +47,7 @@ Event::Event()
, m_defaultHandled(false)
, m_cancelBubble(false)
, m_eventPhase(0)
, m_currentTarget(0)
, m_currentTarget(nullptr)
, m_createTime(convertSecondsToDOMTimeStamp(currentTime()))
{
ScriptWrappable::init(this);
......@@ -63,7 +63,7 @@ Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableAr
, m_defaultHandled(false)
, m_cancelBubble(false)
, m_eventPhase(0)
, m_currentTarget(0)
, m_currentTarget(nullptr)
, m_createTime(convertSecondsToDOMTimeStamp(currentTime()))
{
ScriptWrappable::init(this);
......@@ -79,7 +79,7 @@ Event::Event(const AtomicString& eventType, const EventInit& initializer)
, m_defaultHandled(false)
, m_cancelBubble(false)
, m_eventPhase(0)
, m_currentTarget(0)
, m_currentTarget(nullptr)
, m_createTime(convertSecondsToDOMTimeStamp(currentTime()))
{
ScriptWrappable::init(this);
......@@ -248,6 +248,7 @@ EventTarget* Event::currentTarget() const
void Event::trace(Visitor* visitor)
{
visitor->trace(m_currentTarget);
visitor->trace(m_target);
visitor->trace(m_underlyingEvent);
visitor->trace(m_eventPath);
......
......@@ -203,7 +203,7 @@ private:
bool m_cancelBubble;
unsigned short m_eventPhase;
EventTarget* m_currentTarget;
RawPtrWillBeMember<EventTarget> m_currentTarget;
RefPtrWillBeMember<EventTarget> m_target;
DOMTimeStamp m_createTime;
RefPtrWillBeMember<Event> m_underlyingEvent;
......
......@@ -217,6 +217,7 @@ void XMLHttpRequestProgressEventThrottle::resume()
void XMLHttpRequestProgressEventThrottle::trace(Visitor* visitor)
{
visitor->trace(m_target);
visitor->trace(m_deferredProgressEvent);
visitor->trace(m_deferredEvents);
}
......
......@@ -81,8 +81,11 @@ private:
bool hasEventToDispatch() const;
// Weak pointer to our XMLHttpRequest object as it is the one holding us.
EventTarget* m_target;
// Non-Oilpan, keep a weak pointer to our XMLHttpRequest object as it is
// the one holding us. With Oilpan, a simple strong Member can be used -
// this XMLHttpRequestProgressEventThrottle (part) object dies together
// with the XMLHttpRequest object.
RawPtrWillBeMember<EventTarget> m_target;
bool m_lengthComputable;
unsigned long long m_loaded;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment