[reflection] Use mono_module_get_object_handle everywhere (#4010)
[mono.git] / mono / metadata / custom-attrs.c
index 20fd8de75215b2b5ce726ba34a0ae9d763915c57..46c8ba4f1640831814a2583aed99009b32776a8a 100644 (file)
@@ -16,7 +16,6 @@
 #include "mono/metadata/gc-internals.h"
 #include "mono/metadata/mono-endian.h"
 #include "mono/metadata/object-internals.h"
-#include "mono/metadata/reflection-cache.h"
 #include "mono/metadata/custom-attrs-internals.h"
 #include "mono/metadata/sre-internals.h"
 #include "mono/metadata/reflection-internals.h"
@@ -120,7 +119,8 @@ static guint32
 find_field_index (MonoClass *klass, MonoClassField *field) {
        int i;
 
-       for (i = 0; i < klass->field.count; ++i) {
+       int fcount = mono_class_get_field_count (klass);
+       for (i = 0; i < fcount; ++i) {
                if (field == &klass->fields [i])
                        return mono_class_get_first_field_idx (klass) + 1 + i;
        }
@@ -131,12 +131,14 @@ find_field_index (MonoClass *klass, MonoClassField *field) {
  * Find the property index in the metadata Property table.
  */
 static guint32
-find_property_index (MonoClass *klass, MonoProperty *property) {
+find_property_index (MonoClass *klass, MonoProperty *property)
+{
        int i;
+       MonoClassPropertyInfo *info = mono_class_get_property_info (klass);
 
-       for (i = 0; i < klass->ext->property.count; ++i) {
-               if (property == &klass->ext->properties [i])
-                       return klass->ext->property.first + 1 + i;
+       for (i = 0; i < info->count; ++i) {
+               if (property == &info->properties [i])
+                       return info->first + 1 + i;
        }
        return 0;
 }
@@ -145,12 +147,14 @@ find_property_index (MonoClass *klass, MonoProperty *property) {
  * Find the event index in the metadata Event table.
  */
 static guint32
-find_event_index (MonoClass *klass, MonoEvent *event) {
+find_event_index (MonoClass *klass, MonoEvent *event)
+{
        int i;
+       MonoClassEventInfo *info = mono_class_get_event_info (klass);
 
-       for (i = 0; i < klass->ext->event.count; ++i) {
-               if (event == &klass->ext->events [i])
-                       return klass->ext->event.first + 1 + i;
+       for (i = 0; i < info->count; ++i) {
+               if (event == &info->events [i])
+                       return info->first + 1 + i;
        }
        return 0;
 }