diff options
Diffstat (limited to 'src/vm/eetwain.cpp')
-rw-r--r-- | src/vm/eetwain.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vm/eetwain.cpp b/src/vm/eetwain.cpp index 5df7b6305a..dbbfac9000 100644 --- a/src/vm/eetwain.cpp +++ b/src/vm/eetwain.cpp @@ -18,6 +18,7 @@ #include "gcinfodecoder.h" #endif +#include "argdestination.h" #define X86_INSTR_W_TEST_ESP 0x4485 // test [esp+N], eax #define X86_INSTR_TEST_ESP_SIB 0x24 @@ -4071,7 +4072,10 @@ void promoteVarArgs(PTR_BYTE argsStart, PTR_VASigCookie varArgSig, GCCONTEXT* ct // if skipFixedArgs is false we report all arguments // otherwise we just report the varargs. if (!skipFixedArgs || inVarArgs) - msig.GcScanRoots(pFrameBase + argOffset, ctx->f, ctx->sc); + { + ArgDestination argDest(pFrameBase, argOffset, argit.GetArgLocDescForStructInRegs()); + msig.GcScanRoots(&argDest, ctx->f, ctx->sc); + } } } |