コード例 #1
0
ファイル: Memory.cpp プロジェクト: blyk/BlackCode-Fuse
static void uNewWeak(uObject* object)
{
    if (object->__weakptr)
        return;

    uWeakObject* weak = (uWeakObject*)U_MALLOC_WEAKREF(sizeof(uWeakObject));
    weak->Object = object;
    weak->RefCount = 1;
    weak->ZombieState = uWeakObject::Healthy;
    weak->ZombieStateIntercept = 0;
    object->__weakptr = weak;

//#if #(GC:Defined)
//#ifdef DEBUG_GC
//    GC_REGISTER_FINALIZER(
//        weak, (GC_finalization_proc)&uGCFinalizeWeakRef, object->__type, 0, 0);
//#endif
//
//    GC_GENERAL_REGISTER_DISAPPEARING_LINK((void**)&weak->Object, object);
//#endif
}
コード例 #2
0
static void uAllocWeakObject(uObject *obj)
{
    if (obj->__obj_weak)
        return;

    uWeakObject *weak = (uWeakObject*)U_MALLOC_WEAKREF(sizeof(uWeakObject));
    weak->Object = obj;
    weak->RefCount = 1;
    weak->ZombieState = uWeakObject::Healthy;
    weak->ZombieStateIntercept = 0;

    obj->__obj_weak = weak;









}