Skip to content

Commit fc85a87

Browse files
Intrinsic support for transient codegen. (#115639)
The previous transient codegen paths only handled lifetime management when the method had no metadata back IL (that is, RVA == 0). The InstanceCalli logic is marked as an intrinsic and has metadata, but that metadata is copied and then modified falling back to a middle ground that the existing logic didn't handle properly. The tricky scenario is when these new instrinsic types were inlined (lifetimes were being ignored). This change fixes that up but required clean-up in the UnsafeJitFunction code paths. --------- Co-authored-by: Jan Kotas <[email protected]>
1 parent bb48410 commit fc85a87

File tree

4 files changed

+426
-456
lines changed

4 files changed

+426
-456
lines changed

src/coreclr/utilcode/format1.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,13 @@ COR_ILMETHOD_DECODER::COR_ILMETHOD_DECODER(
6161
fErrorInInit = true;
6262
Code = 0;
6363
SetLocalVarSigTok(0);
64-
if (wbStatus != NULL)
65-
{
66-
*wbStatus = FORMAT_ERROR;
67-
}
6864
}
6965
PAL_ENDTRY
7066

7167
if (fErrorInInit)
7268
{
69+
if (wbStatus != NULL)
70+
*wbStatus = FORMAT_ERROR;
7371
return;
7472
}
7573

0 commit comments

Comments
 (0)