#pragma warning disable 414
// dynamicMethods is an array of System.Resolver objects, used to keep
- // DynamicMethodDescs alive for the lifetime of StackFrameHelper.
+ // DynamicMethodDescs AND collectible LoaderAllocators alive for the lifetime of StackFrameHelper.
private object dynamicMethods; // Field is not used from managed.
private IntPtr[] rgMethodHandle;
private int iFrameCount;
#pragma warning restore 414
- private delegate void GetSourceLineInfoDelegate(string assemblyPath, IntPtr loadedPeAddress,
+ private delegate void GetSourceLineInfoDelegate(Assembly assembly, string assemblyPath, IntPtr loadedPeAddress,
int loadedPeSize, IntPtr inMemoryPdbAddress, int inMemoryPdbSize, int methodToken, int ilOffset,
out string sourceFile, out int sourceLine, out int sourceColumn);
Type[] parameterTypes = new Type[]
{
- typeof(string), typeof(IntPtr), typeof(int), typeof(IntPtr),
+ typeof(Assembly), typeof(string), typeof(IntPtr), typeof(int), typeof(IntPtr),
typeof(int), typeof(int), typeof(int),
typeof(string).MakeByRefType(), typeof(int).MakeByRefType(), typeof(int).MakeByRefType()
};
// ENC or the source/line info was already retrieved, the method token is 0.
if (rgiMethodToken[index] != 0)
{
- s_getSourceLineInfo(rgAssemblyPath[index], rgLoadedPeAddress[index], rgiLoadedPeSize[index],
+ s_getSourceLineInfo(rgAssembly[index], rgAssemblyPath[index], rgLoadedPeAddress[index], rgiLoadedPeSize[index],
rgInMemoryPdbAddress[index], rgiInMemoryPdbSize[index], rgiMethodToken[index],
rgiILOffset[index], out rgFilename[index], out rgiLineNumber[index], out rgiColumnNumber[index]);
}