- if (sig->params[i]->type==MONO_TYPE_SZARRAY)
- {
- guint32 alen=mono_array_length(ctorArgs) - i;
- guint32 j;
- if ((p-buffer) + 10 >= buflen) {
- char *newbuf;
- buflen *= 2;
- newbuf = g_realloc (buffer, buflen);
- p = newbuf + (p-buffer);
- buffer = newbuf;
- }
- *p++=alen&0xff;
- *p++=(alen>>8)&0xff;
- *p++=(alen>>16)&0xff;
- *p++=(alen>>24)&0xff;
- for (j=0;j<alen;j++)
- {
- arg=(MonoObject*)mono_array_get(ctorArgs,gpointer,i+j);
- encode_cattr_value(buffer,p,&buffer,&p,&buflen,sig->params[i]->data.type,arg);
- }
- }
- else
- {
- arg = (MonoObject*)mono_array_get (ctorArgs, gpointer, i);
- encode_cattr_value (buffer, p, &buffer, &p, &buflen, sig->params [i], arg);
- }
+ arg = mono_array_get (ctorArgs, MonoObject*, i);
+ encode_cattr_value (buffer, p, &buffer, &p, &buflen, sig->params [i], arg);