Enlightenment CVS committal

Author  : moom16
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/lib


Modified Files:
        etk_signal.c etk_signal_callback.c 


Log Message:
* Fix the segvs on amd64!!! :)
Thanks to buzzy and choichoi!! :)



===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_signal.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_signal.c        20 Nov 2005 10:33:28 -0000      1.3
+++ etk_signal.c        20 Nov 2005 13:35:41 -0000      1.4
@@ -324,11 +324,13 @@
    Etk_Signal_Callback *callback;
    Etk_Bool return_value_set = FALSE;
    void *result = NULL;
+   va_list args2;
 
    if (!object || !signal)
       return;
 
    _etk_signal_stop_emission = FALSE;
+   va_copy(args2, args);
 
    /* We call the callbacks to call before the default handler */
    callbacks = ecore_list_new();
@@ -338,12 +340,12 @@
    {
       if (!return_value_set || !signal->accumulator)
       {
-         etk_signal_callback_call_valist(callback, object, return_value, args);
+         etk_signal_callback_call_valist(callback, object, return_value, 
args2);
          return_value_set = TRUE;
       }
       else
       {
-         etk_signal_callback_call_valist(callback, object, result, args);
+         etk_signal_callback_call_valist(callback, object, result, args2);
          signal->accumulator(return_value, result, signal->accum_data);
       }
    }
@@ -362,12 +364,12 @@
       {
          if (!return_value_set || !signal->accumulator)
          {
-            signal->marshaller(*default_handler, object, NULL, return_value, 
args);
+            signal->marshaller(*default_handler, object, NULL, return_value, 
args2);
             return_value_set = TRUE;
          }
          else
          {
-            signal->marshaller(*default_handler, object, NULL, result, args);
+            signal->marshaller(*default_handler, object, NULL, result, args2);
             signal->accumulator(return_value, result, signal->accum_data);
          }
       }
@@ -384,16 +386,18 @@
    {
       if (!return_value_set || !signal->accumulator)
       {
-         etk_signal_callback_call_valist(callback, object, return_value, args);
+         etk_signal_callback_call_valist(callback, object, return_value, 
args2);
          return_value_set = TRUE;
       }
       else
       {
-         etk_signal_callback_call_valist(callback, object, result, args);
+         etk_signal_callback_call_valist(callback, object, result, args2);
          signal->accumulator(return_value, result, signal->accum_data);
       }
    }
    ecore_list_destroy(callbacks);
+   
+   va_end(args2);
 }
 
 /**
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_signal_callback.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- etk_signal_callback.c       1 Oct 2005 16:29:45 -0000       1.1
+++ etk_signal_callback.c       20 Nov 2005 13:35:41 -0000      1.2
@@ -88,7 +88,13 @@
       swapped_callback(callback->data);
    }
    else
-      marshaller(callback->callback, object, callback->data, return_value, 
args);
+   {
+      va_list args2;
+      
+      va_copy(args2, args);
+      marshaller(callback->callback, object, callback->data, return_value, 
args2);
+      va_end(args2);
+   }
 }
 
 /** @} */




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to