static MonoArray* create_names_array_idx_dynamic (const guint16 *names, int ml) { MonoArray *ret; MonoDomain *domain; int i, len = 0; if (names == NULL) return NULL; domain = mono_domain_get (); for (i = 0; i < ml; i++) { if (names [i] == 0) break; len++; } ret = mono_array_new_cached (mono_domain_get (), mono_get_string_class (), len); for(i = 0; i < len; i++) mono_array_setref (ret, i, mono_string_new (domain, idx2string (names [i]))); return ret; }
static MonoArray* create_group_sizes_array (const gint *gs, gint ml) { MonoArray *ret; int i, len = 0; for (i = 0; i < ml; i++) { if (gs [i] == -1) break; len++; } ret = mono_array_new_cached (mono_domain_get (), mono_get_int32_class (), len); for(i = 0; i < len; i++) mono_array_set (ret, gint32, i, gs [i]); return ret; }
static MonoArray* create_names_array_idx (const guint16 *names, int ml, MonoError *error) { MonoArray *ret; MonoDomain *domain; int i; error_init (error); if (names == NULL) return NULL; domain = mono_domain_get (); ret = mono_array_new_cached (mono_domain_get (), mono_get_string_class (), ml, error); return_val_if_nok (error, NULL); for(i = 0; i < ml; i++) mono_array_setref (ret, i, mono_string_new (domain, dtidx2string (names [i]))); return ret; }
static MonoArray* create_group_sizes_array (const gint *gs, gint ml, MonoError *error) { MonoArray *ret; int i, len = 0; error_init (error); for (i = 0; i < ml; i++) { if (gs [i] == -1) break; len++; } ret = mono_array_new_cached (mono_domain_get (), mono_get_int32_class (), len, error); return_val_if_nok (error, NULL); for(i = 0; i < len; i++) mono_array_set (ret, gint32, i, gs [i]); return ret; }