Bug 889193 - Remove DOMRequest::mRooted. r=smaug

This commit is contained in:
Andrew McCreight 2013-08-14 11:29:20 -07:00
parent 7fb6f56f2f
commit 90a2d6a14e
5 changed files with 9 additions and 34 deletions

View File

@ -20,9 +20,6 @@ NS_INTERFACE_MAP_END_INHERITING(DOMRequest)
NS_IMPL_ADDREF_INHERITED(DOMCursor, DOMRequest)
NS_IMPL_RELEASE_INHERITED(DOMCursor, DOMRequest)
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(DOMCursor, DOMRequest)
NS_IMPL_CYCLE_COLLECTION_TRACE_END
DOMCursor::DOMCursor(nsIDOMWindow* aWindow, nsICursorContinueCallback* aCallback)
: DOMRequest(aWindow)
, mCallback(aCallback)
@ -36,9 +33,7 @@ DOMCursor::Reset()
MOZ_ASSERT(!mFinished);
// Reset the request state so we can FireSuccess() again.
if (mRooted) {
UnrootResultVal();
}
mResult = JSVAL_VOID;
mDone = false;
}

View File

@ -22,8 +22,8 @@ class DOMCursor : public DOMRequest
public:
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSIDOMDOMCURSOR
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(DOMCursor,
DOMRequest)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DOMCursor,
DOMRequest)
DOMCursor(nsIDOMWindow* aWindow, nsICursorContinueCallback *aCallback);

View File

@ -20,7 +20,6 @@ using mozilla::AutoPushJSContext;
DOMRequest::DOMRequest(nsIDOMWindow* aWindow)
: mResult(JSVAL_VOID)
, mDone(false)
, mRooted(false)
{
SetIsDOMBinding();
Init(aWindow);
@ -31,7 +30,6 @@ DOMRequest::DOMRequest(nsIDOMWindow* aWindow)
DOMRequest::DOMRequest()
: mResult(JSVAL_VOID)
, mDone(false)
, mRooted(false)
{
SetIsDOMBinding();
}
@ -53,10 +51,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DOMRequest,
nsDOMEventTargetHelper)
if (tmp->mRooted) {
tmp->UnrootResultVal();
}
NS_IMPL_CYCLE_COLLECTION_UNLINK(mError)
tmp->mResult = JSVAL_VOID;
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(DOMRequest,
@ -193,21 +189,10 @@ DOMRequest::FireEvent(const nsAString& aType, bool aBubble, bool aCancelable)
void
DOMRequest::RootResultVal()
{
NS_ASSERTION(!mRooted, "Don't call me if already rooted!");
nsXPCOMCycleCollectionParticipant *participant;
CallQueryInterface(this, &participant);
nsContentUtils::HoldJSObjects(NS_CYCLE_COLLECTION_UPCAST(this, DOMRequest),
participant);
mRooted = true;
}
void
DOMRequest::UnrootResultVal()
{
NS_ASSERTION(mRooted, "Don't call me if not rooted!");
mResult = JSVAL_VOID;
NS_DROP_JS_OBJECTS(this, DOMRequest);
mRooted = false;
}
NS_IMPL_ISUPPORTS1(DOMRequestService, nsIDOMRequestService)

View File

@ -24,7 +24,6 @@ protected:
JS::Heap<JS::Value> mResult;
nsCOMPtr<nsISupports> mError;
bool mDone;
bool mRooted;
public:
NS_DECL_ISUPPORTS_INHERITED
@ -78,16 +77,14 @@ public:
virtual ~DOMRequest()
{
if (mRooted) {
UnrootResultVal();
}
mResult = JSVAL_VOID;
NS_DROP_JS_OBJECTS(this, DOMRequest);
}
protected:
void FireEvent(const nsAString& aType, bool aBubble, bool aCancelable);
void RootResultVal();
void UnrootResultVal();
void Init(nsIDOMWindow* aWindow);
};

View File

@ -1726,13 +1726,11 @@ nsDOMDeviceStorageCursor::Continue(ErrorResult& aRv)
return;
}
if (mRooted) {
// We call onsuccess multiple times. clear the last
// rooted result.
if (mResult != JSVAL_VOID) {
// We call onsuccess multiple times. Clear the last
// result.
mResult = JSVAL_VOID;
NS_DROP_JS_OBJECTS(this, nsDOMDeviceStorageCursor);
mDone = false;
mRooted = false;
}
nsCOMPtr<ContinueCursorEvent> event = new ContinueCursorEvent(this);