Re: Populate array of PointF

Robert Jordan <[email protected]>
Newsgroups gmane.comp.gnome.mono.devel
Message-ID <[email protected]>
No idea why mono_object_unbox () is failing on you. It might
be a side effect of a different issue.

Since PointF is a struct (a value type), arrays of this type
are looking like a C/C++ array: a contiguous block of memory
which can store n elements of sizeof(PointF).

You should declare an unmanaged version of PointF, something
like that:

/* double check the layout of PointF as I didn't. */
typedef struct {
	float x, y;
} PointF;


Then manipulate array elements like this:

PointF *ptr = (PointF*) mono_array_addr_with_size (
	arrayPtF, sizeof(PointF), /*index*/ 0);
ptr->x = 0;
ptr->y = 1;


Robert



On 10.03.2017 16:29, howard.rubin wrote:
> Thanks, @Robert Jordan for the reply. I don't see how to do what you suggest:
> "store unboxed PointF values into the array". I can't even get the unboxed
> point because this line segfaults.
> void* unboxedPoint = mono_object_unbox(ptF);
>
> Thread 1 (Thread 0x7f667faf3780 (LWP 31655)):
> #0  0x00007f667ed52fdb in waitpid () from /lib64/libpthread.so.0
> #1  0x00007f667f441ad6 in mono_handle_native_sigsegv
> (signal=signal@entry=11, ctx=ctx@entry=0x7f667fb01ac0,
> info=info@entry=0x7f667fb01bf0) at mini-exceptions.c:2347
> #2  0x00007f667f49d07e in mono_arch_handle_altstack_exception
> (sigctx=sigctx@entry=0x7f667fb01ac0, siginfo=siginfo@entry=0x7f667fb01bf0,
> fault_addr=<optimized out>, stack_ovf=stack_ovf@entry=0) at
> exceptions-amd64.c:851
> #3  0x00007f667f3af96c in mono_sigsegv_signal_handler (_dummy=11,
> _info=0x7f667fb01bf0, context=0x7f667fb01ac0) at mini.c:6810
> #4  <signal handler called>
> #5  0x00007f667f5496a3 in mono_object_unbox (obj=0x7f667fa62f60) at
> object.c:5318
> #6  0x00000000004010a6 in main () at array.cpp:46
>
> =================================================================
> Got a SIGSEGV while executing native code. This usually indicates
> a fatal error in the mono runtime or one of the native libraries
> used by your application.
> =================================================================
>
>
>
>
> --
> View this message in context: http://mono.1490590.n4.nabble.com/Populate-array-of-PointF-tp4670214p4670220.html
> Sent from the Mono - Dev mailing list archive at Nabble.com.
> _______________________________________________
> Mono-devel-list mailing list
> [email protected]
> http://lists.dot.net/mailman/listinfo/mono-devel-list
>


_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.dot.net/mailman/listinfo/mono-devel-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.