244c266c9f
Not checking for this would result in `clutter_actor_add_child` failing, but StBin keeping a copy in `priv->child`. So later on, `st_bin_remove` would never be called on it and this assertion would fail and crash the whole shell: ``` static void st_bin_destroy (ClutterActor *actor) { StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (actor)); if (priv->child) clutter_actor_destroy (priv->child); g_assert (priv->child == NULL); ``` By disallowing spurious `st_bin_set_child` calls we now prevent StBin from entering such a corrupt state and the above assertion won't fail anymore. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1507>