Skip to content

[wasm] Fix typedef for non-void interp entry callbacks - #59968

Merged
lambdageek merged 1 commit into
dotnet:mainfrom
lambdageek:fix-pinvoke-gen-unmanagedcallersonly
Oct 5, 2021
Merged

[wasm] Fix typedef for non-void interp entry callbacks#59968
lambdageek merged 1 commit into
dotnet:mainfrom
lambdageek:fix-pinvoke-gen-unmanagedcallersonly

Conversation

@lambdageek

Copy link
Copy Markdown
Member

For UnmanagedCallersOnly methods that return non-void, pass the address of the
return variable to the interp entry method.

For UnmanagedCallersOnly methods that return non-void, pass the address of the
return variable to the interp entry method.
@ghost

ghost commented Oct 4, 2021

Copy link
Copy Markdown

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

For UnmanagedCallersOnly methods that return non-void, pass the address of the
return variable to the interp entry method.

Author:lambdageek
Assignees:-
Labels:

arch-wasm, area-Interop-mono

Milestone:-

@lambdageek

Copy link
Copy Markdown
MemberAuthor

Should we backport to 6.0? @lewing

@lambdageek

lambdageek commented Oct 4, 2021

Copy link
Copy Markdown
MemberAuthor

Previously it was generating something like this:

typedefvoid (*WasmInterpEntrySig_0) (int,int*,int*,int*,int*,int*,int*,int*);
intwasm_native_to_interp_System_Private_CoreLib_ComponentActivator_LoadAssemblyAndGetFunctionPointer (intarg0,intarg1,intarg2,intarg3,intarg4,intarg5) { intres;
((WasmInterpEntrySig_0)wasm_native_to_interp_ftndescs [0].func) (&res, &arg0, &arg1, &arg2, &arg3, &arg4, &arg5, wasm_native_to_interp_ftndescs [0].arg);
returnres;
}

for

[UnmanagedCallersOnly]publicstaticunsafeintLoadAssemblyAndGetFunctionPointer(IntPtrassemblyPathNative,IntPtrtypeNameNative,IntPtrmethodNameNative,IntPtrdelegateTypeNative,IntPtrreserved,IntPtrfunctionHandle)

@lambdageek

Copy link
Copy Markdown
MemberAuthor

/backport to release/6.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/6.0: https://github.com/dotnet/runtime/actions/runs/1308006447

@lambdageek
lambdageek merged commit f20ac34 into dotnet:mainOct 5, 2021
@ghostghost locked as resolved and limited conversation to collaborators Nov 4, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-Interop-mono

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@lambdageek@BrzVlad