예제 #1
0
파일: object.c 프로젝트: JackieXie168/GCD
DISPATCH_NOINLINE
_os_object_t
_os_object_retain_with_resurrect(_os_object_t obj)
{
	int xref_cnt = _os_object_xrefcnt_inc(obj);
	if (slowpath(xref_cnt < 0)) {
		_OS_OBJECT_CLIENT_CRASH("Resurrection of an overreleased object");
	}
	if (slowpath(xref_cnt == 0)) {
		_os_object_retain_internal(obj);
	}
	return obj;
}
예제 #2
0
void
_dispatch_retain(dispatch_object_t dou)
{
	(void)_os_object_retain_internal(dou._os_obj);
}