Commit 3d20aebe authored by aroben@apple.com's avatar aroben@apple.com

2011-03-15 Adam Roben <aroben@apple.com>

        Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin

        Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in
        WebStorageTrackerClient::dispatchDidModifyOrigin

        Reviewed by Antti Koivisto.

        * Storage/WebStorageTrackerClient.mm:
        (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed
        to us by dispatchDidModifyOrigin.
        (WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an
        unnecessary cast.

git-svn-id: svn://svn.chromium.org/blink/trunk@81150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent e2b16a8f
2011-03-15 Adam Roben <aroben@apple.com>
Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin
Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in
WebStorageTrackerClient::dispatchDidModifyOrigin
Reviewed by Antti Koivisto.
* Storage/WebStorageTrackerClient.mm:
(WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed
to us by dispatchDidModifyOrigin.
(WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an
unnecessary cast.
2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Darin Adler.
......
......@@ -53,7 +53,9 @@ WebStorageTrackerClient::~WebStorageTrackerClient()
void WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread(void* context)
{
ASSERT(isMainThread());
WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(static_cast<SecurityOrigin*>(context));
// adoptRef is balanced by leakRef in dispatchDidModifyOrigin.
RefPtr<SecurityOrigin> origin = adoptRef(static_cast<SecurityOrigin*>(context));
WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(origin.get());
}
void WebStorageTrackerClient::dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin> origin)
......@@ -69,7 +71,8 @@ void WebStorageTrackerClient::dispatchDidModifyOrigin(const String& originIdenti
PassRefPtr<SecurityOrigin> origin = SecurityOrigin::createFromDatabaseIdentifier(originIdentifier);
if (!isMainThread()) {
callOnMainThread(dispatchDidModifyOriginOnMainThread, static_cast<void*>(origin.leakRef()));
// leakRef is balanced by adoptRef in dispatchDidModifyOriginOnMainThread.
callOnMainThread(dispatchDidModifyOriginOnMainThread, origin.leakRef());
return;
}
......
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