Esempio n. 1
0
            internal override unsafe void Visit(UIntPtr *loc)
            {
                UIntPtr objAddr = *loc;
                Object  obj     = Magic.fromAddress(objAddr);

                // 1. remove from ZCT
                Remove(obj);
                // 2. decrement RC on objects retained via multiuseword
                MultiUseWord muw = MultiUseWord.GetForObject(obj);

                if (muw.IsMonitorOrInflatedTag())
                {
                    MultiUseWord.RefCountGCDeadObjHook(muw);
                }
                // 3. add to deallocation list
                DeferredReferenceCountingCollector.deallocateLazily(obj);
            }