From 6effc2655de307610bc3db05469b9028f4c9b82b Mon Sep 17 00:00:00 2001 From: Kyle Huey Date: Tue, 8 Nov 2011 12:51:37 -0500 Subject: [PATCH] Bug 700685: DeleteDatabaseHelper releases objects on the wrong thread. r=bent --- dom/indexedDB/OpenDatabaseHelper.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dom/indexedDB/OpenDatabaseHelper.cpp b/dom/indexedDB/OpenDatabaseHelper.cpp index 9b888cc86568..97ff663f7959 100644 --- a/dom/indexedDB/OpenDatabaseHelper.cpp +++ b/dom/indexedDB/OpenDatabaseHelper.cpp @@ -537,7 +537,7 @@ public: const nsAString& aName, const nsACString& aASCIIOrigin) : AsyncConnectionHelper(static_cast(nsnull), aRequest), - mOpenRequest(aRequest), mOpenHelper(aHelper), + mOpenHelper(aHelper), mOpenRequest(aRequest), mCurrentVersion(aCurrentVersion), mName(aName), mASCIIOrigin(aASCIIOrigin) { } @@ -545,6 +545,14 @@ public: nsresult GetSuccessResult(JSContext* aCx, jsval* aVal); + void ReleaseMainThreadObjects() + { + mOpenHelper = nsnull; + mOpenRequest = nsnull; + + AsyncConnectionHelper::ReleaseMainThreadObjects(); + } + protected: nsresult DoDatabaseWork(mozIStorageConnection* aConnection); nsresult Init();