Enlightenment CVS committal

Author  : moom
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_signal.c 


Log Message:
* [Signal] Fix signal emission with x86_64 cpus. Should fix a lot of 
bugs on these cpus (espcially the scrollbar bug...). Thanks a lot to 
ilLogict for helping me debugging this :)


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_signal.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- etk_signal.c        10 Feb 2007 16:55:42 -0000      1.23
+++ etk_signal.c        25 Feb 2007 21:36:21 -0000      1.24
@@ -455,7 +455,6 @@
    emitted_signal->stop_emission = ETK_FALSE;
    _etk_signal_emitted_signals = 
evas_list_prepend(_etk_signal_emitted_signals, emitted_signal);
    
-   va_copy(args2, args);
 
    /* Calls the default handler */
    if (signal->handler_offset >= 0 && signal->marshaller)
@@ -465,8 +464,10 @@
       default_handler = (void *)object + signal->handler_offset;
       if (*default_handler)
       {
+         va_copy(args2, args);
          signal->marshaller(*default_handler, object, NULL, return_value, 
args2);
          return_value_set = ETK_TRUE;
+         va_end(args2);
       }
    }
    
@@ -477,6 +478,7 @@
       etk_object_signal_callbacks_get(object, signal, &callbacks);
       while (!emitted_signal->stop_emission && callbacks && object_ptr)
       {
+         va_copy(args2, args);
          callback = callbacks->data;
          if (!return_value_set || !signal->accumulator)
          {
@@ -488,6 +490,7 @@
             etk_signal_callback_call_valist(callback, object, &result, args2);
             signal->accumulator(return_value, &result, signal->accum_data);
          }
+         va_end(args2);
          callbacks = evas_list_remove_list(callbacks, callbacks);
       }
       callbacks = evas_list_free(callbacks);
@@ -499,7 +502,6 @@
    ret = !emitted_signal->stop_emission;
    free(emitted_signal);
    
-   va_end(args2);
    return ret;
 }
 



-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to