Bug 27519

Summary: Run-Time Check triggers in WebDragClient::willPerformDragSourceAction
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: WebKit Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Major    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows Vista   

Description Ryosuke Niwa 2009-07-21 14:27:35 PDT
Launch the Nightly build.  Click the search bar, and then select all texts in address bar and drag downwards to the web page.  Run-time check error occurs in WebDragClient::willPerformDragSourceAction, which is located at \WebKit\win\WebCoreSupport/webdragclient.h

The following is what VS spits out:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

Call Stack:
>	WebKit.dll!WebDragClient::willPerformDragSourceAction(WebCore::DragSourceAction action=DragSourceActionSelection, const WebCore::IntPoint & intPoint={...}, WebCore::Clipboard * clipboard=0x07230a88)  Line 117 + 0x46 bytes	C++
 	WebKit.dll!WebCore::DragController::startDrag(WebCore::Frame * src=0x036a4ff0, WebCore::Clipboard * clipboard=0x07230a88, WebCore::DragOperation srcOp=DragOperationNone, const WebCore::PlatformMouseEvent & dragEvent={...}, const WebCore::IntPoint & dragOrigin={...}, bool isDHTMLDrag=false)  Line 699 + 0x21 bytes	C++
 	WebKit.dll!WebCore::EventHandler::handleDrag(const WebCore::MouseEventWithHitTestResults & event={...})  Line 2256 + 0x44 bytes	C++
 	WebKit.dll!WebCore::EventHandler::handleMouseDraggedEvent(const WebCore::MouseEventWithHitTestResults & event={...})  Line 406 + 0xc bytes	C++
 	WebKit.dll!WebCore::EventHandler::handleMouseMoveEvent(const WebCore::PlatformMouseEvent & mouseEvent={...}, WebCore::HitTestResult * hoveredNode=0x009af29c)  Line 1371 + 0xc bytes	C++
 	WebKit.dll!WebCore::EventHandler::mouseMoved(const WebCore::PlatformMouseEvent & event={...})  Line 1263 + 0x10 bytes	C++
 	WebKit.dll!WebView::handleMouseEvent(unsigned int message=512, unsigned int wParam=1, long lParam=917508)  Line 1324 + 0x1d bytes	C++
 	WebKit.dll!WebViewWndProc(HWND__ * hWnd=0x003202f8, unsigned int message=512, unsigned int wParam=1, long lParam=917508)  Line 1858 + 0x14 bytes	C++


Error triggers at the line 117 of the file where the statement is:
    HRESULT result = uiDelegate->willPerformDragSourceAction(m_webView, static_cast<WebDragSourceAction>(action), &point, dataObject.get(), &newDataObject);


The following is a dump of relevant variables:

		action	DragSourceActionSelection	WebCore::DragSourceAction
+		newDataObject	{m_ptr=0x00000000 }	COMPtr<IDataObject>

-		dataObject	{m_ptr=0x08efb978 }	COMPtr<IDataObject>
-		m_ptr	0x08efb978 {m_ref=3 m_formats={...} m_medium={...} }	IDataObject *
-		[WebCore::WCDataObject]	{m_ref=3 m_formats={...} m_medium={...} }	WebCore::WCDataObject
+		IDataObject	{...}	IDataObject
		m_ref	3	long
+		m_formats	{m_size=2 m_buffer={...} }	WTF::Vector<tagFORMATETC *,0>
+		m_medium	{m_size=2 m_buffer={...} }	WTF::Vector<tagSTGMEDIUM *,0>
-		IUnknown	{...}	IUnknown
-		__vfptr	0x02609760 const WebCore::WCDataObject::`vftable'	*
		[0]	0x019655d0 WebCore::WCDataObject::QueryInterface(const _GUID &, void * *)	*
		[1]	0x01965650 WebCore::WCDataObject::AddRef(void)	*
		[2]	0x01965680 WebCore::WCDataObject::Release(void)	*


-		uiDelegate	{m_ptr=0x036a4738 }	COMPtr<IWebUIDelegate>
-		m_ptr	0x036a4738	IWebUIDelegate *
-		IUnknown	{...}	IUnknown
-		__vfptr	0x004f1da0	*
		[0]	0x00281570	*
		[1]	0x002bfad0	*
		[2]	0x002bfad0	*



-		m_webView	0x036a4798 {m_refCount=4 m_hostWindow=0x00140382 m_viewWindow=0x003202f8 ...}	WebView *
+		IWebView	{...}	IWebView
+		IWebViewPrivate	{...}	IWebViewPrivate
+		IWebIBActions	{...}	IWebIBActions
+		IWebViewCSS	{...}	IWebViewCSS
+		IWebViewEditing	{...}	IWebViewEditing
+		IWebViewUndoableEditing	{...}	IWebViewUndoableEditing
+		IWebViewEditingActions	{...}	IWebViewEditingActions
+		IWebNotificationObserver	{...}	IWebNotificationObserver
+		IDropTarget	{...}	IDropTarget
+		WebCore::WindowMessageListener	{...}	WebCore::WindowMessageListener
		m_refCount	4	unsigned long
+		m_hostWindow	0x00140382 {unused=7209065 }	HWND__ *
+		m_viewWindow	0x003202f8 {unused=-1407844525 }	HWND__ *
+		m_mainFrame	0x036a4f40 {m_refCount=1 d=0x036a4fc8 m_quickRedirectComing=false ...}	WebFrame *
+		m_page	0x036a48c8 {m_chrome={...} m_dragCaretController={...} m_dragController={...} ...}	WebCore::Page *
+		m_backingStoreBitmap	{m_ptr=0x5f0515ea }	WTF::OwnPtr<HBITMAP__ *>
+		m_backingStoreSize	{cx=355 cy=17 }	tagSIZE
+		m_backingStoreDirtyRegion	{m_ptr=0x00000000 }	WTF::OwnPtr<HRGN__ *>
+		m_editingDelegate	{m_ptr=0x00000000 }	COMPtr<IWebEditingDelegate>
+		m_frameLoadDelegate	{m_ptr=0x036a4740 }	COMPtr<IWebFrameLoadDelegate>
+		m_frameLoadDelegatePrivate	{m_ptr=0x00000000 }	COMPtr<IWebFrameLoadDelegatePrivate>
+		m_uiDelegate	{m_ptr=0x036a4738 }	COMPtr<IWebUIDelegate>
+		m_uiDelegatePrivate	{m_ptr=0x036a473c }	COMPtr<IWebUIDelegatePrivate>
+		m_formDelegate	{m_ptr=0x036a4748 }	COMPtr<IWebFormDelegate>
+		m_policyDelegate	{m_ptr=0x036a474c }	COMPtr<IWebPolicyDelegate>
+		m_resourceLoadDelegate	{m_ptr=0x00000000 }	COMPtr<IWebResourceLoadDelegate>
+		m_downloadDelegate	{m_ptr=0x00000000 }	COMPtr<IWebDownloadDelegate>
+		m_preferences	{m_ptr=0x036ad6e8 }	COMPtr<WebPreferences>
+		m_webInspector	{m_ptr=0x00000000 }	COMPtr<WebInspector>
		m_userAgentOverridden	false	bool
		m_useBackForwardList	true	bool
+		m_userAgentCustom	{m_impl={...} }	WebCore::String
+		m_userAgentStandard	{m_impl={...} }	WebCore::String
		m_zoomMultiplier	1.0000000	float
+		m_overrideEncoding	{m_impl={...} }	WebCore::String
+		m_applicationName	{m_impl={...} }	WebCore::String
		m_mouseActivated	false	bool
+		m_dragData	{m_ptr=0x00000000 }	COMPtr<IDataObject>
+		m_dropTargetHelper	{m_ptr=0x00ab0ff4 }	COMPtr<IDropTargetHelper>
		m_currentCharacterCode	0	wchar_t
		m_isBeingDestroyed	false	bool
		m_paintCount	0	unsigned int
		m_hasSpellCheckerDocumentTag	false	bool
		m_smartInsertDeleteEnabled	true	bool
		m_selectTrailingWhitespaceEnabled	false	bool
		m_didClose	false	bool
		m_hasCustomDropTarget	true	bool
		m_inIMEComposition	0	unsigned int
+		m_toolTipHwnd	0x00160256 {unused=??? }	HWND__ *
+		m_toolTip	{m_impl={...} }	WebCore::String
		m_deleteBackingStoreTimerActive	false	bool
		m_transparent	false	bool
		s_allowSiteSpecificHacks	true	bool
+		m_closeWindowTimer	{m_object=0x036a4798 m_function=0x0129d106 }	WebCore::Timer<WebView>
+		m_mouseOutTracker	{m_ptr=0x087c84c0 }	WTF::OwnPtr<tagTRACKMOUSEEVENT>
+		m_topLevelParent	0x000809a0 {unused=0 }	HWND__ *
+		m_embeddedViewMIMETypes	{m_ptr=0x00000000 }	WTF::OwnPtr<WTF::HashSet<WebCore::String,WebCore::StringHash,WTF::HashTraits<WebCore::String> > >
		m_lastPanX	0	long
		m_lastPanY	0	long
		m_xOverpan	0	long
		m_yOverpan	0	long
Comment 1 Ryosuke Niwa 2009-07-21 14:31:49 PDT

*** This bug has been marked as a duplicate of bug 27073 ***