Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into v2.2 branch #1036

Merged
merged 31 commits into from
Sep 12, 2020
Merged

Merge master into v2.2 branch #1036

merged 31 commits into from
Sep 12, 2020

Conversation

AArnott
Copy link
Collaborator

@AArnott AArnott commented Sep 12, 2020

No description provided.

mayuki and others added 30 commits August 14, 2020 17:38
…lizeTypelessExtension

Fix deserialize typeless extension without typeless formatter specified
…erpreter

use ExpressionTree.Compile(preferInterpretation: true) for Unity IL2CPP
…Type

This was previously checking whether the declaring type of the member was a value type, not the member itself. This property doesn't seem to be used anywhere and so fixing it shouldn't break anything else (it doesn't impact the unit test results at all).
…to ctor args as type object

If the value of a property of type int is used to populate a constructor argument of type object in deserialization then this is allowed by the constructor-matching code because it simply uses IsAssignableFrom as a check for compatability (and object IsAssignable from int) but when the IL is generated to pass an int value as an object, it has to be boxed in order for the code to be valid.

See notes at MessagePack-CSharp#987 (comment) that demonstrate how to use the reproduce case to generate a dll that PEVerify can be run against to show that it was invalid before this change.

I've added unit tests in this changeset for the fix but I suspect that the test runner would have difficulties executing the tests WITHOUT the fix as the ExecutionEngineError could tear down the process before the test runner could record it as a failure. However, if you were to use Debug Test on one of the tests that I've added but comment out the fix that I put into the DynamicObjectResolver then you would be able to see the ExecutionEngineError be caught by the debugger.
…egenerate

mpc - Ignore [MessagePackFormatter] type collect
Box value types if passed to ctor args as type object
@AArnott AArnott added this to the v2.2 milestone Sep 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants