FreeBSD/contrib/libucl/src/ucl_util.c
/*
 * This is a helper function that performs exactly the same as
 * `ucl_object_unref` but it doesn't iterate over elements allowing
 * to use it for individual elements of arrays and multiple values
 */
This is a helper function that performs exactly the same as
`ucl_object_unref` but it doesn't iterate over elements allowing
to use it for individual elements of arrays and multiple values
This is a helper function that performs exactly the same as ` ucl_object_unref ` but it doesn ' t iterate over elements allowing to use it for individual elements of arrays and multiple values
static void
ucl_object_dtor_unref_single (ucl_object_t *obj)
{
	if (obj != NULL) {
#ifdef HAVE_ATOMIC_BUILTINS
		unsigned int rc = __sync_sub_and_fetch (&obj->ref, 1);
		if (rc == 0) {
#else
		if (--obj->ref == 0) {
#endif
			ucl_object_free_internal (obj, false, ucl_object_dtor_unref);
		}
	}
}
static void ucl_object_dtor_unref_single ( ucl_object_t * obj ) { if ( obj != NULL ) { #ifdef HAVE_ATOMIC_BUILTINS unsigned int rc = __sync_sub_and_fetch ( & obj -> ref , 1 ) ; if ( rc == 0 ) { #else 
		if (--obj->ref == 0) { #endif 
			ucl_object_free_internal (obj, false, ucl_object_dtor_unref); } } }
This is a helper function that performs exactly the same as
 `ucl_object_unref` but it doesn't iterate over elements allowing
 to use it for individual elements of arrays and multiple values
This is a helper function that performs exactly the same as ` ucl_object_unref ` but it doesn ' t iterate over elements allowing to use it for individual elements of arrays and multiple values