Title: [150021] trunk/Source/WebKit/qt
Revision
150021
Author
[email protected]
Date
2013-05-13 09:44:47 -0700 (Mon, 13 May 2013)

Log Message

[Qt] Fix a crash on startup in FrameLoaderClientQt::callPolicyFunction with MSVC

Reviewed by Allan Sandfeld Jensen.

It's not clear why it crashes, but here's my guess by looking at the generated
assembly code:
Since we're using a member function pointer to PolicyChecker, the representation
is not necessarily just a simple pointer and might be a bigger structure used
to handle virtual functions resolution.
For a function taking such a function "pointer" as parameter, the compiler doesn't
seem to have the caller and callee agree on which convention to use if the function
pointer's class is non-virtual and only one of the ends doesn't know about it.

Including the definition of the member function pointer's class fixes the crash.

* WebCoreSupport/FrameLoaderClientQt.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebKit/qt/ChangeLog (150020 => 150021)


--- trunk/Source/WebKit/qt/ChangeLog	2013-05-13 16:19:54 UTC (rev 150020)
+++ trunk/Source/WebKit/qt/ChangeLog	2013-05-13 16:44:47 UTC (rev 150021)
@@ -1,3 +1,22 @@
+2013-05-13  Jocelyn Turcotte  <[email protected]>
+
+        [Qt] Fix a crash on startup in FrameLoaderClientQt::callPolicyFunction with MSVC
+
+        Reviewed by Allan Sandfeld Jensen.
+
+        It's not clear why it crashes, but here's my guess by looking at the generated
+        assembly code:
+        Since we're using a member function pointer to PolicyChecker, the representation
+        is not necessarily just a simple pointer and might be a bigger structure used
+        to handle virtual functions resolution.
+        For a function taking such a function "pointer" as parameter, the compiler doesn't
+        seem to have the caller and callee agree on which convention to use if the function
+        pointer's class is non-virtual and only one of the ends doesn't know about it.
+
+        Including the definition of the member function pointer's class fixes the crash.
+
+        * WebCoreSupport/FrameLoaderClientQt.cpp:
+
 2013-05-09  Andreas Kling  <[email protected]>
 
         [Qt][WK1]REGRESSION(r149532) tst_qwebelement and tst_qwebframe API tests crash.

Modified: trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp (150020 => 150021)


--- trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp	2013-05-13 16:19:54 UTC (rev 150020)
+++ trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp	2013-05-13 16:44:47 UTC (rev 150021)
@@ -60,6 +60,7 @@
 #include "PlatformMouseEvent.h"
 #include "PluginData.h"
 #include "PluginDatabase.h"
+#include "PolicyChecker.h"
 #include "ProgressTracker.h"
 #include "QNetworkReplyHandler.h"
 #include "QWebFrameAdapter.h"
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to