/* * marshal.c: Routines for marshaling complex types in P/Invoke methods. * * Author: * Paolo Molaro (lupus@ximian.com) * * (C) 2002 Ximian, Inc. http://www.ximian.com * */ #include "object.h" #include "loader.h" #include "marshal.h" void* mono_marshal_string_array (MonoArray *array) { char **result; int i, len; if (!array) return NULL; len = mono_array_length (array); result = g_malloc (sizeof (char*) * len); for (i = 0; i < len; ++i) { MonoString *s = (MonoString*)mono_array_get (array, gpointer, i); result [i] = s ? mono_string_to_utf8 (s): NULL; } return result; }