cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ebaec0dfaf71cbaa9808141a6690bfd4d592bd1a

commit ebaec0dfaf71cbaa9808141a6690bfd4d592bd1a
Author: Cedric BAIL <[email protected]>
Date:   Tue Sep 30 17:23:05 2014 +0200

    evas: GL_X11 - fix use of deleted memory by pointing to the right data.
---
 src/modules/evas/engines/gl_x11/evas_engine.c | 33 ++++++++++++++-------------
 1 file 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 c01d8f3..8ca0874 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1055,30 +1055,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;

-- 


Reply via email to