Skip to content

st-bin: set priv->child to NULL after destroy

WARNING PR from someone who has no insights into the inner-magic working of gnome-shell & clutter! Please verify if this makes sense!

What is this about?

I have a lot of problems using the extension "material-shell" when closing workspaces (workspace actor).

After looking into the issue and saw that the method st_bin_destroy(ClutterActor *actor) (st-bin.c#L200) is using the method clutter_actor_destroy(ClutterActor *self) (clutter-actor.c#L8569).

When comparing it with other usages of clutter_actor_destroy() it looks like that the st_bin_destroy() is missing the step to set the priv->child pointer to NULL.

Search clutter_actor_destroy in this project.

Questions

  • Is st_bin_destroy() missing the NULL setter?
  • Or, is "material-shell" missing a step to unset the priv->child?

Related issue & logs

St:ERROR:../gnome-shell/src/st/st-bin.c:206:st_bin_destroy: assertion failed: (priv->child == NULL)
Bail out! St:ERROR:../gnome-shell/src/st/st-bin.c:206:st_bin_destroy: assertion failed: (priv->child == NULL)
== Stack trace for context 0x559f0f638170 ==
#0   559f1063d218 i   /home/mickare/.local/share/gnome-shell/extensions/material-shell@papyelgringo/extension.js:8308 (3da112fe6ec0 @ 110)
ANOM_ABEND auid=1000 uid=1000 gid=1000 ses=4 subj==unconfined pid=2257 comm="gnome-shell" exe="/usr/bin/gnome-shell" sig=6 res=1
#1   559f1063d168 i   /home/mickare/.local/share/gnome-shell/extensions/material-shell@papyelgringo/extension.js:9020 (3da112fe51f0 @ 114)
#2   559f1063d0d8 i   /home/mickare/.local/share/gnome-shell/extensions/material-shell@papyelgringo/extension.js:8807 (3da112fe5bf0 @ 16)
#3   7ffcc04d69e0 b   /home/mickare/.local/share/gnome-shell/extensions/material-shell@papyelgringo/extension.js:8778 (3da112fe5d80 @ 1312)
#4   7ffcc04d7100 b   /home/mickare/.local/share/gnome-shell/extensions/material-shell@papyelgringo/extension.js:9032 (3da112fe5150 @ 17)
Running GNOME Shell (using mutter 41.1) as a Wayland display server
Edited by Michael Käser

Merge request reports