Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : screenshot

Dir     : e_modules/screenshot


Modified Files:
        e_mod_main.c 


Log Message:
Fix segfault with ecore_exe_run when taking screenshot.

===================================================================
RCS file: /cvs/e/e_modules/screenshot/e_mod_main.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- e_mod_main.c        30 Dec 2006 23:34:00 -0000      1.69
+++ e_mod_main.c        22 Jan 2007 21:09:47 -0000      1.70
@@ -615,16 +615,12 @@
   Config_Item *ci;
   char buf[4096];
 
-  ev = event;
-  if (!ev->exe)
-    return 1;
-  x = ev->exe;
-  if (!x)
-    return 1;
-
-  inst = ecore_exe_data_get (x);
-  x = NULL;
-  inst->exe = NULL;
+   ev = event;
+   if (!ev->exe) return 1;
+   inst = data;
+   if (ev->exe != inst->exe) return 1;
+   if (inst->exe) inst->exe = NULL;
+   
   if (inst->filename)
     evas_stringshare_del (inst->filename);
   if (ss_config->exe_exit_handler)
@@ -633,8 +629,9 @@
   ci = _ss_config_item_get (inst->gcc->id);
   if ((ci->use_app) && (ci->app != NULL))
     {
-      snprintf (buf, sizeof (buf), "%s %s", ci->app, inst->filename);
-      x = ecore_exe_run (buf, NULL);
+       snprintf (buf, sizeof (buf), "%s %s", ci->app, inst->filename);
+       x = ecore_exe_run (buf, NULL);
+       if (x) ecore_exe_free(x);
     }
   return 0;
 }
@@ -682,8 +679,6 @@
   snprintf (buf, sizeof (buf), "%s %s %s/%s", cmd, opt, ci->location, 
            inst->filename);
    
-  ss_config->exe_exit_handler =
-    ecore_event_handler_add (ECORE_EXE_EVENT_DEL, _ss_exe_cb_exit, NULL);
   if (ci->delay_time > 0)
     {
       msg = malloc (sizeof (Edje_Message_Int_Set) + 1 * sizeof (int));
@@ -694,6 +689,8 @@
       free (msg);
       msg = NULL;
     }
+  ss_config->exe_exit_handler =
+    ecore_event_handler_add (ECORE_EXE_EVENT_DEL, _ss_exe_cb_exit, inst);
   inst->exe = ecore_exe_run (buf, inst);
 }
 



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to