summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2014-09-30 17:23:05 +0200
committerCedric BAIL <cedric@osg.samsung.com>2014-09-30 17:24:58 +0200
commit2e2c36741623161de57a9235371bead1a5bccac4 (patch)
tree12e137783cd6ec0a581a50b5ca5032e7c5a7e763
parentc43ff3cf3143519651acf231588ea39fdee65cfc (diff)
downloadefl-2e2c36741623161de57a9235371bead1a5bccac4.tar.gz
evas: GL_X11 - fix use of deleted memory by pointing to the right data.
-rw-r--r--src/modules/evas/engines/gl_x11/evas_engine.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c
index a37c24b361..19baaffc23 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1054,30 +1054,31 @@ eng_setup(Evas *eo_e, void *in)
re = e->engine.data.output;
if (eng_get_ob(re) && _re_wincheck(eng_get_ob(re)))
{
- if ((eng_get_ob(re)->info->info.display != eng_get_ob(re)->disp) ||
- (eng_get_ob(re)->info->info.drawable != eng_get_ob(re)->win) ||
- (eng_get_ob(re)->info->info.screen != eng_get_ob(re)->screen) ||
- (eng_get_ob(re)->info->info.visual != eng_get_ob(re)->visual) ||
- (eng_get_ob(re)->info->info.colormap != eng_get_ob(re)->colormap) ||
- (eng_get_ob(re)->info->info.depth != eng_get_ob(re)->depth) ||
- (eng_get_ob(re)->info->info.destination_alpha != eng_get_ob(re)->alpha))
+ if ((info->info.display != eng_get_ob(re)->disp) ||
+ (info->info.drawable != eng_get_ob(re)->win) ||
+ (info->info.screen != eng_get_ob(re)->screen) ||
+ (info->info.visual != eng_get_ob(re)->visual) ||
+ (info->info.colormap != eng_get_ob(re)->colormap) ||
+ (info->info.depth != eng_get_ob(re)->depth) ||
+ (info->info.destination_alpha != eng_get_ob(re)->alpha))
{
Outbuf *ob;
eng_window_free(eng_get_ob(re));
+ re->generic.software.ob = NULL;
gl_wins--;
ob = eng_window_new(info, eo_e,
- eng_get_ob(re)->info->info.display,
- eng_get_ob(re)->info->info.drawable,
- eng_get_ob(re)->info->info.screen,
- eng_get_ob(re)->info->info.visual,
- eng_get_ob(re)->info->info.colormap,
- eng_get_ob(re)->info->info.depth,
+ info->info.display,
+ info->info.drawable,
+ info->info.screen,
+ info->info.visual,
+ info->info.colormap,
+ info->info.depth,
e->output.w, e->output.h,
- eng_get_ob(re)->info->indirect,
- eng_get_ob(re)->info->info.destination_alpha,
- eng_get_ob(re)->info->info.rotation,
+ info->indirect,
+ info->info.destination_alpha,
+ info->info.rotation,
swap_mode);
re->generic.software.ob = NULL;