Bug 45131 - Array of double*[] being treated as non-blittable when marshaled
Summary: Array of double*[] being treated as non-blittable when marshaled
Alias: None
Product: Runtime
Classification: Mono
Component: Interop (show other bugs)
Version: unspecified
Hardware: All Linux
: --- normal
Target Milestone: ---
Assignee: Bugzilla
Depends on:
Reported: 2016-10-06 18:06 UTC by Neale Ferguson
Modified: 2016-10-07 18:21 UTC (History)
4 users (show)

See Also:
Is this bug a regression?: ---
Last known good build:

Simple test case (912 bytes, text/plain)
2016-10-06 18:06 UTC, Neale Ferguson
Sample test case code (559 bytes, text/x-csrc)
2016-10-06 18:07 UTC, Neale Ferguson

Description Neale Ferguson 2016-10-06 18:06:16 UTC
Created attachment 17913 [details]
Simple test case

When doing an interop call and trying to access a pinned c# array of double* in c++ we get a segment fault. A test case is attached. Research reveals that the behaviour of the marshaling of double*[] has changed between 4.4 and 4.5/4.6/... In 4.4 the element class is classified as "blittable" but not in the affected levels of code. The marshaling code generated is very different and results in a SEGV.
Comment 1 Neale Ferguson 2016-10-06 18:07:21 UTC
Created attachment 17914 [details]
Sample test case code

C code containing the call to which the double*[] is marshalled.
Comment 2 Zoltan Varga 2016-10-07 02:09:23 UTC
Comment 3 Zoltan Varga 2016-10-07 18:21:26 UTC

Note You need to log in before you can comment on or make changes to this bug.