mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-04-15 12:08:04 +02:00
Run the accumulator function for RUN_CLEANUP object handlers too
Closes issue #512
This commit is contained in:
parent
1f79c7f7c0
commit
153ac4c82a
@ -3759,9 +3759,14 @@ signal_emit_unlocked_R (SignalNode *node,
|
|||||||
node->n_params + 1,
|
node->n_params + 1,
|
||||||
instance_and_params,
|
instance_and_params,
|
||||||
&emission.ihint);
|
&emission.ihint);
|
||||||
|
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
|
||||||
|
emission.state == EMISSION_RUN)
|
||||||
|
emission.state = EMISSION_STOP;
|
||||||
if (need_unset)
|
if (need_unset)
|
||||||
g_value_unset (&accu);
|
g_value_unset (&accu);
|
||||||
SIGNAL_LOCK ();
|
SIGNAL_LOCK ();
|
||||||
|
return_value_altered = TRUE;
|
||||||
|
|
||||||
emission.chain_type = G_TYPE_NONE;
|
emission.chain_type = G_TYPE_NONE;
|
||||||
|
|
||||||
if (emission.state == EMISSION_RESTART)
|
if (emission.state == EMISSION_RESTART)
|
||||||
|
@ -416,7 +416,7 @@ main (int argc,
|
|||||||
g_print ("MAIN: emit test-signal:\n");
|
g_print ("MAIN: emit test-signal:\n");
|
||||||
g_signal_emit_by_name (dobject, "test-signal", sigarg, NULL, &string);
|
g_signal_emit_by_name (dobject, "test-signal", sigarg, NULL, &string);
|
||||||
g_message ("signal return: \"%s\"", string);
|
g_message ("signal return: \"%s\"", string);
|
||||||
g_assert (strcmp (string, "<default_handler><default_handler>") == 0);
|
g_assert_cmpstr (string, ==, "<default_handler><default_handler><default_handler>");
|
||||||
g_free (string);
|
g_free (string);
|
||||||
|
|
||||||
g_print ("MAIN: call iface print-string on test and derived object:\n");
|
g_print ("MAIN: call iface print-string on test and derived object:\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user