[2020-02] Fix leak in assembly-specific dllmap lookups (#21053)
[mono-project.git] / mono / metadata / class-getters.h
blobcf358dd9b133ac916b3b2a56a50786d046af3dc6
1 /*
2 * \file Definitions of getters for the fields of struct _MonoClass
4 * Copyright 2018 Microsoft
5 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 */
8 /* No include guards - this file is meant to be included multiple times.
9 * Before including the file define the following macros:
10 * MONO_CLASS_GETTER(funcname, rettype, optref, argtype, fieldname)
12 * MONO_CLASS_OFFSET(funcname, argtype, fieldname)
15 /* Accessors for _MonoClass fields. */
16 MONO_CLASS_GETTER(m_class_get_element_class, MonoClass *, , MonoClass, element_class)
17 MONO_CLASS_GETTER(m_class_get_cast_class, MonoClass *, , MonoClass, cast_class)
18 MONO_CLASS_GETTER(m_class_get_supertypes, MonoClass **, , MonoClass, supertypes)
19 MONO_CLASS_GETTER(m_class_get_idepth, guint16, , MonoClass, idepth)
20 MONO_CLASS_GETTER(m_class_get_rank, guint8, , MonoClass, rank)
21 MONO_CLASS_GETTER(m_class_get_instance_size, int, , MonoClass, instance_size)
22 MONO_CLASS_GETTER(m_class_is_inited, gboolean, , MonoClass, inited)
23 MONO_CLASS_GETTER(m_class_is_size_inited, gboolean, , MonoClass, size_inited)
24 MONO_CLASS_GETTER(m_class_is_valuetype, gboolean, , MonoClass, valuetype)
25 MONO_CLASS_GETTER(m_class_is_enumtype, gboolean, , MonoClass, enumtype)
26 MONO_CLASS_GETTER(m_class_is_blittable, gboolean, , MonoClass, blittable)
27 MONO_CLASS_GETTER(m_class_is_unicode, gboolean, , MonoClass, unicode)
28 MONO_CLASS_GETTER(m_class_was_typebuilder, gboolean, , MonoClass, wastypebuilder)
29 MONO_CLASS_GETTER(m_class_is_array_special_interface, gboolean, , MonoClass, is_array_special_interface)
30 MONO_CLASS_GETTER(m_class_is_byreflike, gboolean, , MonoClass, is_byreflike)
31 MONO_CLASS_GETTER(m_class_get_min_align, guint8, , MonoClass, min_align)
32 MONO_CLASS_GETTER(m_class_get_packing_size, guint, , MonoClass, packing_size)
33 MONO_CLASS_GETTER(m_class_is_ghcimpl, gboolean, , MonoClass, ghcimpl)
34 MONO_CLASS_GETTER(m_class_has_finalize, gboolean, , MonoClass, has_finalize)
35 #ifndef DISABLE_REMOTING
36 MONO_CLASS_GETTER(m_class_get_marshalbyref, guint, , MonoClass, marshalbyref)
37 MONO_CLASS_GETTER(m_class_get_contextbound, guint, , MonoClass, contextbound)
38 #endif
39 MONO_CLASS_GETTER(m_class_is_delegate, gboolean, , MonoClass, delegate)
40 MONO_CLASS_GETTER(m_class_is_gc_descr_inited, gboolean, , MonoClass, gc_descr_inited)
41 MONO_CLASS_GETTER(m_class_has_cctor, gboolean, , MonoClass, has_cctor)
42 MONO_CLASS_GETTER(m_class_has_references, gboolean, , MonoClass, has_references)
43 MONO_CLASS_GETTER(m_class_has_static_refs, gboolean, , MonoClass, has_static_refs)
44 MONO_CLASS_GETTER(m_class_has_no_special_static_fields, gboolean, , MonoClass, no_special_static_fields)
45 MONO_CLASS_GETTER(m_class_is_com_object, gboolean, , MonoClass, is_com_object)
46 MONO_CLASS_GETTER(m_class_is_nested_classes_inited, gboolean, , MonoClass, nested_classes_inited)
47 MONO_CLASS_GETTER(m_class_get_class_kind, guint8, , MonoClass, class_kind)
48 MONO_CLASS_GETTER(m_class_is_interfaces_inited, gboolean, , MonoClass, interfaces_inited)
49 MONO_CLASS_GETTER(m_class_is_simd_type, gboolean, , MonoClass, simd_type)
50 MONO_CLASS_GETTER(m_class_is_has_finalize_inited, gboolean, , MonoClass, has_finalize_inited)
51 MONO_CLASS_GETTER(m_class_is_fields_inited, gboolean, , MonoClass, fields_inited)
52 MONO_CLASS_GETTER(m_class_has_failure, gboolean, , MonoClass, has_failure)
53 MONO_CLASS_GETTER(m_class_has_weak_fields, gboolean, , MonoClass, has_weak_fields)
54 MONO_CLASS_GETTER(m_class_has_dim_conflicts, gboolean, , MonoClass, has_dim_conflicts)
55 MONO_CLASS_GETTER(m_class_get_parent, MonoClass *, , MonoClass, parent)
56 MONO_CLASS_GETTER(m_class_get_nested_in, MonoClass *, , MonoClass, nested_in)
57 MONO_CLASS_GETTER(m_class_get_image, MonoImage *, , MonoClass, image)
58 MONO_CLASS_GETTER(m_class_get_name, const char *, , MonoClass, name)
59 MONO_CLASS_GETTER(m_class_get_name_space, const char *, , MonoClass, name_space)
60 MONO_CLASS_GETTER(m_class_get_type_token, guint32, , MonoClass, type_token)
61 MONO_CLASS_GETTER(m_class_get_vtable_size, int, , MonoClass, vtable_size)
62 MONO_CLASS_GETTER(m_class_get_interface_count, guint16, , MonoClass, interface_count)
63 MONO_CLASS_GETTER(m_class_get_interface_id, guint32, , MonoClass, interface_id)
64 MONO_CLASS_GETTER(m_class_get_max_interface_id, guint32, , MonoClass, max_interface_id)
65 MONO_CLASS_GETTER(m_class_get_interface_offsets_count, guint16, , MonoClass, interface_offsets_count)
66 MONO_CLASS_GETTER(m_class_get_interfaces_packed, MonoClass **, , MonoClass, interfaces_packed)
67 MONO_CLASS_GETTER(m_class_get_interface_offsets_packed, guint16 *, , MonoClass, interface_offsets_packed)
68 MONO_CLASS_GETTER(m_class_get_interface_bitmap, guint8 *, , MonoClass, interface_bitmap)
69 MONO_CLASS_GETTER(m_class_get_interfaces, MonoClass **, , MonoClass, interfaces)
70 MONO_CLASS_GETTER(m_class_get_sizes, union _MonoClassSizes, , MonoClass, sizes)
71 MONO_CLASS_GETTER(m_class_get_fields, MonoClassField *, , MonoClass, fields)
72 MONO_CLASS_GETTER(m_class_get_methods, MonoMethod **, , MonoClass, methods)
73 MONO_CLASS_GETTER(m_class_get_this_arg, MonoType*, &, MonoClass, this_arg)
74 MONO_CLASS_GETTER(m_class_get_byval_arg, MonoType*, &, MonoClass, _byval_arg)
75 MONO_CLASS_GETTER(m_class_get_gc_descr, MonoGCDescriptor, , MonoClass, gc_descr)
76 MONO_CLASS_GETTER(m_class_get_runtime_info, MonoClassRuntimeInfo *, , MonoClass, runtime_info)
77 MONO_CLASS_GETTER(m_class_get_vtable, MonoMethod **, , MonoClass, vtable)
78 MONO_CLASS_GETTER(m_class_get_infrequent_data, MonoPropertyBag*, &, MonoClass, infrequent_data)
80 /* Accessors for _MonoClassDef fields. */
81 MONO_CLASS_GETTER(m_classdef_get_klass, MonoClass*, &, MonoClassDef, klass)
82 MONO_CLASS_GETTER(m_classdef_get_flags, guint32, , MonoClassDef, flags)
83 MONO_CLASS_GETTER(m_classdef_get_first_method_idx, guint32, , MonoClassDef, first_method_idx)
84 MONO_CLASS_GETTER(m_classdef_get_first_field_idx, guint32, , MonoClassDef, first_field_idx)
85 MONO_CLASS_GETTER(m_classdef_get_method_count, guint32, , MonoClassDef, method_count)
86 MONO_CLASS_GETTER(m_classdef_get_field_count, guint32, , MonoClassDef, field_count)
87 MONO_CLASS_GETTER(m_classdef_get_next_class_cache, MonoClass **, &, MonoClassDef, next_class_cache)
89 /* Accessors for _MonoClassGtd fields. */
90 MONO_CLASS_GETTER(m_classgtd_get_klass, MonoClassDef*, &, MonoClassGtd, klass)
91 MONO_CLASS_GETTER(m_classgtd_get_generic_container, MonoGenericContainer*, , MonoClassGtd, generic_container)
92 MONO_CLASS_GETTER(m_classgtd_get_canonical_inst, MonoType*, &, MonoClassGtd, canonical_inst)
94 /* Accessors for _MonoClassGenericInst fields. */
95 MONO_CLASS_GETTER(m_classgenericinst_get_klass, MonoClass*, &, MonoClassGenericInst, klass)
96 MONO_CLASS_GETTER(m_classgenericinst_get_generic_class, MonoGenericClass*, , MonoClassGenericInst, generic_class)
98 /* Accessors for _MonoClassGenericParam fields. */
99 MONO_CLASS_GETTER(m_classgenericparam_get_klass, MonoClass*, &, MonoClassGenericParam, klass)
101 /* Accessors for _MonoClassArray fields. */
102 MONO_CLASS_GETTER(m_classarray_get_klass, MonoClass*, &, MonoClassArray, klass)
103 MONO_CLASS_GETTER(m_classarray_get_method_count, guint32, , MonoClassArray, method_count)
105 /* Accessors for _MonoClassPointer fields. */
106 MONO_CLASS_GETTER(m_classpointer_get_klass, MonoClass*, &, MonoClassPointer, klass)
108 MONO_CLASS_OFFSET(m_class_offsetof_interface_bitmap, MonoClass, interface_bitmap)
109 MONO_CLASS_OFFSET(m_class_offsetof_byval_arg, MonoClass, _byval_arg)
110 MONO_CLASS_OFFSET(m_class_offsetof_cast_class, MonoClass, cast_class)
111 MONO_CLASS_OFFSET(m_class_offsetof_element_class, MonoClass, element_class)
112 MONO_CLASS_OFFSET(m_class_offsetof_idepth, MonoClass, idepth)
113 MONO_CLASS_OFFSET(m_class_offsetof_instance_size, MonoClass, instance_size)
114 MONO_CLASS_OFFSET(m_class_offsetof_interface_id, MonoClass, interface_id)
115 MONO_CLASS_OFFSET(m_class_offsetof_max_interface_id, MonoClass, max_interface_id)
116 MONO_CLASS_OFFSET(m_class_offsetof_parent, MonoClass, parent)
117 MONO_CLASS_OFFSET(m_class_offsetof_rank, MonoClass, rank)
118 MONO_CLASS_OFFSET(m_class_offsetof_sizes, MonoClass, sizes)
119 MONO_CLASS_OFFSET(m_class_offsetof_supertypes, MonoClass, supertypes)
120 MONO_CLASS_OFFSET(m_class_offsetof_class_kind, MonoClass, class_kind)