Esempio n. 1
0
        public RejitData[] GetRejitData(ulong md, ulong ip = 0)
        {
            InitDelegate(ref _getMethodDescData, VTable.GetMethodDescData);
            HResult hr = _getMethodDescData(Self, md, ip, out MethodDescData data, 0, null, out int needed);

            if (hr && needed >= 1)
            {
                RejitData[] result = new RejitData[needed];
                hr = _getMethodDescData(Self, md, ip, out data, result.Length, result, out needed);
                if (hr)
                {
                    return(result);
                }
            }

            return(Array.Empty <RejitData>());
        }
Esempio n. 2
0
        public RejitData[] GetRejitData(ulong md, ulong ip = 0)
        {
            InitDelegate(ref _getMethodDescData, VTable->GetMethodDescData);
            int hr = _getMethodDescData(Self, md, ip, out MethodDescData data, 0, null, out int needed);

            if (SUCCEEDED(hr) && needed > 1)
            {
                RejitData[] result = new RejitData[needed];
                hr = _getMethodDescData(Self, md, ip, out data, result.Length, result, out needed);
                if (SUCCEEDED(hr))
                {
                    return(result);
                }
            }

            if (s_emptyRejit == null)
            {
                s_emptyRejit = new RejitData[0];
            }

            return(s_emptyRejit);
        }