Merge pull request #853 from echampet/onclick
[mono.git] / mono / metadata / icall.c
index 0212a3c909d1d89fc6150ef9e9ff47f99bdf5dbe..e47f958817170c1c735f20615cdd3d391d5a78a4 100644 (file)
@@ -3222,7 +3222,7 @@ ves_icall_Type_GetFields_internal (MonoReflectionType *type, MonoString *name, g
        klass = startklass = mono_class_from_mono_type (type->type);
        refklass = mono_class_from_mono_type (reftype->type);
 
-       mono_ptr_array_init (tmp_array, 2);
+       mono_ptr_array_init (tmp_array, 2, MONO_ROOT_SOURCE_REFLECTION, "temporary reflection fields list");
        
 handle_parent: 
        if (klass->exception_type != MONO_EXCEPTION_NONE) {
@@ -3478,7 +3478,7 @@ ves_icall_Type_GetConstructors_internal (MonoReflectionType *type, guint32 bflag
        gpointer iter = NULL;
        MonoPtrArray tmp_array;
        
-       mono_ptr_array_init (tmp_array, 4); /*FIXME, guestimating*/
+       mono_ptr_array_init (tmp_array, 4, MONO_ROOT_SOURCE_REFLECTION, "temporary reflection constructors list"); /*FIXME, guestimating*/
 
        domain = ((MonoObject *)type)->vtable->domain;
        if (type->type->byref)
@@ -3586,7 +3586,7 @@ ves_icall_Type_GetPropertiesByName (MonoReflectionType *type, MonoString *name,
        GHashTable *properties = NULL;
        MonoPtrArray tmp_array;
 
-       mono_ptr_array_init (tmp_array, 8); /*This the average for ASP.NET types*/
+       mono_ptr_array_init (tmp_array, 8, MONO_ROOT_SOURCE_REFLECTION, "temporary reflection properties list"); /*This the average for ASP.NET types*/
 
        if (!System_Reflection_PropertyInfo)
                System_Reflection_PropertyInfo = mono_class_from_name (
@@ -3720,7 +3720,7 @@ ves_icall_Type_GetEvents_internal (MonoReflectionType *type, MonoString *name, g
        GHashTable *events = NULL;
        MonoPtrArray tmp_array;
 
-       mono_ptr_array_init (tmp_array, 4);
+       mono_ptr_array_init (tmp_array, 4, MONO_ROOT_SOURCE_REFLECTION, "temporary reflection events list");
 
        if (!System_Reflection_EventInfo)
                System_Reflection_EventInfo = mono_class_from_name (
@@ -3853,7 +3853,7 @@ ves_icall_Type_GetNestedTypes (MonoReflectionType *type, MonoString *name, guint
        if (klass->generic_class)
                klass = klass->generic_class->container_class;
 
-       mono_ptr_array_init (tmp_array, 1);
+       mono_ptr_array_init (tmp_array, 1, MONO_ROOT_SOURCE_REFLECTION, "temporary reflection nested types list");
        iter = NULL;
        while ((nested = mono_class_get_nested_types (klass, &iter))) {
                match = 0;
@@ -5616,6 +5616,12 @@ ves_icall_System_Delegate_AllocDelegateLike_internal (MonoDelegate *delegate)
        return ret;
 }
 
+ICALL_EXPORT MonoReflectionMethod*
+ves_icall_System_Delegate_GetVirtualMethod_internal (MonoDelegate *delegate)
+{
+       return mono_method_get_object (mono_domain_get (), mono_object_get_virtual_method (delegate->target, delegate->method), mono_object_class (delegate->target));
+}
+
 /* System.Buffer */
 
 static inline gint32 
@@ -6162,7 +6168,7 @@ ves_icall_System_Text_EncodingHelper_InternalCodePage (gint32 *int_code_page)
        p = encodings [0];
        code = 0;
        for (i = 0; p != 0; ){
-               if ((gssize) p < 7){
+               if ((gsize) p < 7){
                        code = (gssize) p;
                        p = encodings [++i];
                        continue;