void __int_xmms_object_unref (xmms_object_t *object) { g_return_if_fail (object->ref > 0); if (g_atomic_int_dec_and_test (&(object->ref))) { if (object->destroy_func) object->destroy_func (object); xmms_object_cleanup (object); g_free (object); } }
void xmms_object_unref (gpointer obj) { xmms_object_t *object; g_return_if_fail (obj && XMMS_IS_OBJECT (obj)); object = XMMS_OBJECT (obj); g_return_if_fail (object->ref > 0); if (g_atomic_int_dec_and_test (&(object->ref))) { if (object->destroy_func) object->destroy_func (object); xmms_object_cleanup (object); g_free (object); } }