actor: Improve the debug name
Only for debug builds, the debug name should include a) actor name, b) type name, and c) pointer address. For non-debug builds we can live with the actor/type name.
This commit is contained in:
parent
b339b845cb
commit
a3a2fbfd5a
@ -754,6 +754,11 @@ struct _ClutterActorPrivate
|
||||
|
||||
ClutterColor bg_color;
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
/* a string used for debugging messages */
|
||||
gchar *debug_name;
|
||||
#endif
|
||||
|
||||
/* bitfields */
|
||||
|
||||
/* fixed position and sizes */
|
||||
@ -1051,8 +1056,27 @@ G_DEFINE_TYPE_WITH_CODE (ClutterActor,
|
||||
const gchar *
|
||||
_clutter_actor_get_debug_name (ClutterActor *actor)
|
||||
{
|
||||
return actor->priv->name != NULL ? actor->priv->name
|
||||
: G_OBJECT_TYPE_NAME (actor);
|
||||
ClutterActorPrivate *priv = actor->priv;
|
||||
const gchar *retval;
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
if (G_UNLIKELY (priv->debug_name == NULL))
|
||||
{
|
||||
priv->debug_name = g_strdup_printf ("<%s>[<%s>:%p]",
|
||||
priv->name != NULL ? priv->name
|
||||
: "unnamed",
|
||||
G_OBJECT_TYPE_NAME (actor),
|
||||
actor);
|
||||
}
|
||||
|
||||
retval = priv->debug_name;
|
||||
#else
|
||||
retval = priv->name != NULL
|
||||
? priv->name
|
||||
: G_OBJECT_TYPE_NAME (actor);
|
||||
#endif
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
@ -5274,6 +5298,10 @@ clutter_actor_finalize (GObject *object)
|
||||
|
||||
g_free (priv->name);
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
g_free (priv->debug_name);
|
||||
#endif
|
||||
|
||||
G_OBJECT_CLASS (clutter_actor_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user