Example #1
0
        internal CorHandleValue GetHandle(CorValue val)
        {
            CorHandleValue handleVal = null;

            if (!handles.TryGetValue(val.Address, out handleVal))
            {
                handleVal = val.CastToHandleValue();
                if (handleVal == null)
                {
                    // Create a handle
                    CorReferenceValue refVal  = val.CastToReferenceValue();
                    CorHeapValue      heapVal = refVal.Dereference().CastToHeapValue();
                    handleVal = heapVal.CreateHandle(CorDebugHandleType.HANDLE_STRONG);
                }
                handles.Add(val.Address, handleVal);
            }
            return(handleVal);
        }