Tags: neonkore/mono
Tags
Add missing handle function enter/return macros (mono#21407) The mono_field_static_get_value method uses a handle, but did not set up enter/exit macros properly, so this handle was leaked. Some code in Unity calls this embedding API method pretty often, which can lead to the mark stack overflowing in the GC code. Co-authored-by: Josh Peterson <[email protected]>
[interp] Remove hack for nint/nfloat (mono#21395) These structures are valuetypes, but their mint_type is a primitive. This means that a LDFLD applied on the type would have attempted to do a pointer dereference, because it saw that the current top of stack is not STACK_TYPE_VT. This was fixed in the past by passing the managed pointer to the valuetype rather than the valuetype itself, against the normal call convention, which lead to inconsistencies in the code. This commit removes that hack and fixes the problem by ignoring LDFLD applied to nint/nfloat valuetypes in the first place.
transform sgen_get_descriptor to parallel safe version in job_major_m… …od_union_preclean (mono#21391) fixes mono#21369 Related to dotnet/android#6546 job_major_mod_union_preclean can race with the tarjan bridge implementation that changes the vtable pointer by settings the three lower bits. this results in invalid loading of the vtable (shifted by 7 bytes) which in turn give a wrong desc to the scan functions This change is released under the MIT license. Co-authored-by: Thomas Mijieux <[email protected]>
[2020-02] [cominterop] Add coop handle enter/return on native CCW met… …hods (mono#21366) * [tests] Add CCW GetIUnknownForObject leak test * [cominterop] Add coop handle enter/return on native CCW methods The CCW methods for IUnknown (and in principle IDispatch - except they all have trivial bodies) are native C code in the runtime that may allocate coop handles. Add a coop handle frame around the entire call in order to make sure they're cleaned up and don't retain a reference. This helps fix managed object leaks with code like: ``` var o = new SomeClass(); var pUnk = Marshal.GetIUnknownForObject(o); int c = Marshal.Release(pUnk); o = null; ``` Which retains a reference to the `SomeClass` instance that won't be collected until the thread dies, despite cleaning up the IUnknown refcount. The underling ccw addref/release methods leak coop handles on the thread. This is not an issue when the CCW calls some managed method because there are no coop handles there until some icall (at which point it will set up the coop handle stack properly). Co-authored-by: Aleksey Kliger <[email protected]>
[2020-02] Adds full path to libcairo for correct assembly directory r… …esolution in monterey (mono#21351) Backport of mono#21326 to 2020-02 Co-authored-by: Jose Medrano <[email protected]> Co-authored-by: Alexander Köplinger <[email protected]>
[aot] Prepend the assembly name to the names of gsharedvt wrappers to… … avoid duplicate symbol errors during static linking. (mono#21309) Fixes mono#20417. Co-authored-by: Zoltan Varga <[email protected]>
Revert "[2020-02] Start a dedicated thread for MERP crash reporting (m… …ono#21126)" (mono#21240) This reverts commit 6303563.
Stop using git protocol for submodules GitHub is removing support for unencrypted git soon: https://github.blog/2021-09-01-improving-git-protocol-security-github/ (cherry picked from commit d4a369b)
Ignore inherit param for ParameterInfo.GetCustomAttributes (mono#21201) It is documented that the inherit flag is ignored. Attribute.GetCustomAttributes is to be used to search inheritance chain. This change is only for the Mono classlib implementation. CoreCLR already has this behavior. Co-authored-by: Bill Holmes <[email protected]>
[2020-02][linux] Some pseudo-tty fixes (mono#21205) * Ignore EINVAL errors on ioctl TIOCMGET/TIOCMSET so (mono#20219) pseudo-ttys are usable. (mono#20218) * Fix pseudo-ttys for kernel versions >= 5.13 (mono#21203) Co-authored-by: csanchezdll <[email protected]>
PreviousNext