forked from enlightenment/efl
xlib: fix undefined behaviour when freeing colormap too early
Summary: On Ubuntu 14.04 it makes a 32 bit depth window un-responsive to any XEvent. Reviewers: cedric, raster Reviewed By: raster Subscribers: raster, capOM, cedric Differential Revision: https://phab.enlightenment.org/D1236
This commit is contained in:
parent
fce1e61ff5
commit
d3c56d5c74
|
@ -1683,7 +1683,6 @@ _ecore_x_window_argb_internal_new(Ecore_X_Window parent,
|
|||
CWWinGravity,
|
||||
&attr);
|
||||
if (_ecore_xlib_sync) ecore_x_sync();
|
||||
XFreeColormap(_ecore_x_disp, attr.colormap);
|
||||
|
||||
if (parent == DefaultRootWindow(_ecore_x_disp))
|
||||
ecore_x_window_defaults_set(win);
|
||||
|
|
|
@ -180,6 +180,10 @@ evas_software_xlib_outbuf_free(Outbuf *buf)
|
|||
if (buf->priv.pal)
|
||||
evas_software_xlib_x_color_deallocate(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.cmap,
|
||||
buf->priv.x11.xlib.vis, buf->priv.pal);
|
||||
|
||||
/* safe because no effect on the default colormap */
|
||||
XFreeColormap (buf->priv.x11.xlib.disp, buf->priv.x11.xlib.cmap);
|
||||
|
||||
eina_array_flush(&buf->priv.onebuf_regions);
|
||||
free(buf);
|
||||
_clear_xob(0);
|
||||
|
|
Loading…
Reference in New Issue