Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / reflection.c
index 1fe52a4c5d0d3da24d0504532877309281c3c88f..6f2ed9414154c65f78769320161a773c299c1440 100644 (file)
@@ -1313,9 +1313,9 @@ reflection_methodbuilder_from_method_builder (ReflectionMethodBuilder *rmb, Mono
        rmb->refs = NULL;
 
        if (mb->dll) {
-               rmb->charset = rmb->charset & 0xf;
-               rmb->lasterr = rmb->charset & 0x40;
-               rmb->native_cc = rmb->native_cc;
+               rmb->charset = mb->charset & 0xf;
+               rmb->lasterr = mb->charset & 0x40;
+               rmb->native_cc = mb->native_cc;
                rmb->dllentry = mb->dllentry;
                rmb->dll = mb->dll;
        }
@@ -1821,7 +1821,7 @@ property_encode_signature (MonoDynamicImage *assembly, MonoReflectionPropertyBui
                        MonoReflectionType *pt = mono_array_get (mb->parameters, MonoReflectionType*, i);
                        encode_reflection_type (assembly, pt, p, &p);
                }
-       } else {
+       } else if (smb) {
                /* the property type is the last param */
                encode_reflection_type (assembly, mono_array_get (smb->parameters, MonoReflectionType*, nparams), p, &p);
                for (i = 0; i < nparams; ++i) {
@@ -1829,6 +1829,10 @@ property_encode_signature (MonoDynamicImage *assembly, MonoReflectionPropertyBui
                        encode_reflection_type (assembly, pt, p, &p);
                }
        }
+       else {
+               encode_reflection_type (assembly, fb->type, p, &p);
+       }
+
        /* store length */
        g_assert (p - buf < size);
        mono_metadata_encode_value (p-buf, b, &b);
@@ -5351,7 +5355,6 @@ mono_method_get_object (MonoDomain *domain, MonoMethod *method, MonoClass *refcl
         */
        const char *cname;
        MonoClass *klass;
-       MonoMethod *original = method;
        MonoReflectionMethod *ret;
 
        if (method->is_inflated) {