Christian Hergert 24a3fd4c4d st: implement ClutterActorClass.has_accessible()
Implement ClutterActorClass.has_accessible() to ensure that CallyActor does not
recreate accessibles during the removal/destruction of an actor.  This relies
on GNOME/mutter!1083 for the ClutterActorClass.has_accessible virtual function.

Running GNOME Shell for about 30 seconds results in a difference between
the two runs.

Before:

    ALLOCATED      TOTAL    FUNCTION
[   52.2 KiB] [   0.05%]    cally_actor_real_remove_actor
[   36.3 KiB] [   0.04%]      st_widget_get_accessible
[    9.8 KiB] [   0.01%]      atk_gobject_accessible_for_object
[    3.2 KiB] [   0.00%]      g_signal_emit_by_name
[    2.9 KiB] [   0.00%]      clutter_actor_get_children

After:

    ALLOCATED      TOTAL    FUNCTION
[    1.8 KiB] [   0.00%]    cally_actor_real_remove_actor
[    1.1 KiB] [   0.00%]      clutter_actor_get_children
[  659 bytes] [   0.00%]      g_signal_emit_by_name

Obviously 50KiB isn't a huge savings.

Although fixing things to avoid re-entrancy on destruction can be very useful
from a correctness standpoint.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2263
2020-02-24 22:20:26 +00:00
..
2019-12-02 08:04:51 -06:00
2020-01-20 16:15:22 -03:00
2019-11-04 21:27:56 +01:00
2019-11-04 21:27:56 +01:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2019-11-22 18:55:40 +01:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2013-09-18 20:01:49 +02:00
2015-10-15 22:02:35 +02:00
2019-01-30 22:50:01 +01:00
2015-10-15 22:02:35 +02:00
2019-03-04 22:29:33 +00:00
2015-10-15 22:02:35 +02:00
2012-08-29 16:41:09 -03:00
2020-01-20 16:15:22 -03:00
2020-01-20 16:15:22 -03:00
2017-07-20 00:20:54 +02:00
2019-08-27 15:30:51 +03:00