Merge branch 'G_SIGNAL_RUN_CLEANUP_do_not_call_accumulate' into 'master'

Run the accumulator function for RUN_CLEANUP object handlers too

Closes #512

See merge request GNOME/glib!1053
This commit is contained in:
Philip Withnall 2019-08-26 06:19:07 +00:00
commit 12bd86a2ee
2 changed files with 6 additions and 1 deletions

View File

@ -3759,9 +3759,14 @@ signal_emit_unlocked_R (SignalNode *node,
node->n_params + 1,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
emission.state == EMISSION_RUN)
emission.state = EMISSION_STOP;
if (need_unset)
g_value_unset (&accu);
SIGNAL_LOCK ();
return_value_altered = TRUE;
emission.chain_type = G_TYPE_NONE;
if (emission.state == EMISSION_RESTART)

View File

@ -416,7 +416,7 @@ main (int argc,
g_print ("MAIN: emit test-signal:\n");
g_signal_emit_by_name (dobject, "test-signal", sigarg, NULL, &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_print ("MAIN: call iface print-string on test and derived object:\n");