[webkit-reviews] review granted: [Bug 108285] Crashed while ref'ing DatabaseContext in DatabaseManager::interruptAllDatabasesForContext() : [Attachment 185565] The fix.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jan 30 14:32:28 PST 2013
Alexey Proskuryakov <ap at webkit.org> has granted Mark Lam <mark.lam at apple.com>'s
request for review:
Bug 108285: Crashed while ref'ing DatabaseContext in
DatabaseManager::interruptAllDatabasesForContext()
https://bugs.webkit.org/show_bug.cgi?id=108285
Attachment 185565: The fix.
https://bugs.webkit.org/attachment.cgi?id=185565&action=review
------- Additional Comments from Alexey Proskuryakov <ap at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=185565&action=review
r=me on ThreadSafeRefCounted part.
> Source/WebCore/Modules/webdatabase/DatabaseManager.cpp:353
> -void
DatabaseManager::interruptAllDatabasesForContext(ScriptExecutionContext*
context)
> +void DatabaseManager::interruptAllDatabasesForContext(const
ScriptExecutionContext* context)
I do not think that we should be using "const ScriptExecutionContext*" here, or
anywhere.
These are huge "world" objects that are never actually immutable, and saying
that they are constant for the purposes of a particular function does not have
any semantic meaning that I could catch.
For example, you are passing context as constant here. But interrupting all
databases for context modifies the context in a very noticeable way!
More information about the webkit-reviews
mailing list