@@ -61,7 +61,7 @@ IterateMonoInternalHashTable (MonoInternalHashTable *table, gpointer user_data)
61
61
for (gint i = 0 ; i < table -> size ; i ++ ) {
62
62
gpointer head = table -> table [i ];
63
63
while (head ) {
64
- MonoClass * klass = head ;
64
+ MonoClass * klass = ( MonoClass * ) head ;
65
65
66
66
if (klass -> inited )
67
67
context -> callback (klass , context -> user_data );
@@ -71,6 +71,7 @@ IterateMonoInternalHashTable (MonoInternalHashTable *table, gpointer user_data)
71
71
}
72
72
}
73
73
74
+ // Report all classes from an assembly
74
75
static void
75
76
ReportClassesFromAssembly (MonoAssembly * assembly , void * user_data )
76
77
{
@@ -95,11 +96,8 @@ ReportClassesFromAssembly(MonoAssembly *assembly, void *user_data)
95
96
}
96
97
}
97
98
98
- /* Some classes are only in this list.
99
- They are added in reflection_setup_internal_class_internal.
100
- */
99
+ // Iterate all classes created with TypeBuilder
101
100
list = image -> reflection_info_unregister_classes ;
102
-
103
101
while (list ) {
104
102
MonoClass * klass = (MonoClass * )list -> data ;
105
103
@@ -109,35 +107,45 @@ ReportClassesFromAssembly(MonoAssembly *assembly, void *user_data)
109
107
list = list -> next ;
110
108
}
111
109
112
- // Iterate all image classes
110
+ // Iterate all initialized image classes
111
+ // Every created class is in the class_cache
113
112
IterateMonoInternalHashTable (& image -> class_cache , user_data );
114
113
114
+ // Iterate all initialized array classes
115
115
if (image -> array_cache )
116
116
g_hash_table_foreach (image -> array_cache , ReportHashMapListClasses , user_data );
117
117
118
+ // Iterate all initialized single-dimention array classes
118
119
if (image -> szarray_cache )
119
120
g_hash_table_foreach (image -> szarray_cache , ReportHashMapClass , user_data );
120
121
122
+ // Iterate all initialized class pointer classes
121
123
if (image -> ptr_cache )
122
124
g_hash_table_foreach (image -> ptr_cache , ReportHashMapClass , user_data );
123
125
}
124
126
127
+ // Report all classes in image sets which contain generic instances.
125
128
static void
126
129
ReportImageSetClasses (MonoImageSet * imageSet , void * user_data )
127
130
{
131
+ // Generic class instances
128
132
if (imageSet -> gclass_cache )
129
133
mono_conc_hashtable_foreach (imageSet -> gclass_cache , ReportGenericClass , user_data );
130
134
135
+ // Generic array class instances
131
136
if (imageSet -> array_cache )
132
137
g_hash_table_foreach (imageSet -> array_cache , ReportHashMapListClasses , user_data );
133
138
139
+ // Generic single dimention array (SZArray) class instances
134
140
if (imageSet -> szarray_cache )
135
141
g_hash_table_foreach (imageSet -> szarray_cache , ReportHashMapClass , user_data );
136
142
143
+ // Generic class pointer instances
137
144
if (imageSet -> ptr_cache )
138
145
g_hash_table_foreach (imageSet -> ptr_cache , ReportHashMapClass , user_data );
139
146
}
140
147
148
+ // Report all initialized classes in the current domain.
141
149
MONO_API void
142
150
mono_unity_class_for_each (ClassReportFunc callback , void * user_data )
143
151
{
@@ -149,14 +157,3 @@ mono_unity_class_for_each(ClassReportFunc callback, void *user_data)
149
157
// Report all image set arrays which include generic classes
150
158
mono_metadata_image_set_foreach (ReportImageSetClasses , & reportContext );
151
159
}
152
-
153
- MONO_API MonoManagedMemorySnapshot *
154
- mono_unity_capture_memory_snapshot ()
155
- {
156
- return NULL ;
157
- }
158
-
159
- MONO_API void
160
- mono_unity_free_captured_memory_snapshot (MonoManagedMemorySnapshot * snapshot )
161
- {
162
- }
0 commit comments