Bug 486482 - null deref [@ nsPluginNativeWindowGtk2::CreateXEmbedWindow ]. r=josh, sr=jst

This commit is contained in:
Martin Stránský 2009-07-21 10:13:38 +02:00
parent 375d2b5374
commit 63b764f9ee

View File

@ -193,16 +193,19 @@ nsresult nsPluginNativeWindowGtk2::CallSetWindow(nsCOMPtr<nsIPluginInstance> &aP
printf("nsPluginNativeWindowGtk2: NPPVpluginNeedsXEmbed=%d\n", needXEmbed);
#endif
}
nsresult rv;
if(needXEmbed) {
#ifdef MOZ_COMPOSITED_PLUGINS
CreateXCompositedWindow();
rv = CreateXCompositedWindow();
#else
CreateXEmbedWindow();
rv = CreateXEmbedWindow();
#endif
}
else {
CreateXtWindow();
rv = CreateXtWindow();
}
if(NS_FAILED(rv))
return NS_ERROR_FAILURE;
}
if(!mSocketWidget)
@ -270,6 +273,9 @@ nsresult nsPluginNativeWindowGtk2::CreateXEmbedWindow() {
// Fill out the ws_info structure.
// (The windowless case is done in nsObjectFrame.cpp.)
GdkWindow *gdkWindow = gdk_window_lookup((XID)window);
if(!gdkWindow)
return NS_ERROR_FAILURE;
mWsInfo.display = GDK_WINDOW_XDISPLAY(gdkWindow);
mWsInfo.colormap = GDK_COLORMAP_XCOLORMAP(gdk_drawable_get_colormap(gdkWindow));
GdkVisual* gdkVisual = gdk_drawable_get_visual(gdkWindow);