Esempio n. 1
0
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);
	}
}
Esempio n. 2
0
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);
	}
}