* The followinbg structure must match the C# implementation in our corlib.
*/
-typedef struct {
+struct _MonoReflectionMethod {
MonoObject object;
MonoMethod *method;
-} MonoReflectionMethod;
-
-typedef struct {
- MonoObject obj;
- MonoReflectionMethod *method;
- MonoArray *args;
- MonoArray *names;
- MonoArray *arg_types;
- MonoObject *ctx;
- MonoObject *rval;
- MonoObject *exc;
-} MonoMethodMessage;
+};
typedef struct {
MonoObject object;
guint32 AttrsImpl;
} MonoReflectionParameter;
+typedef struct {
+ MonoObject object;
+ MonoAssembly *assembly;
+} MonoReflectionAssembly;
+
typedef struct {
MonoReflectionType *utype;
MonoArray *values;
MonoString *name_space;
MonoReflectionType *parent;
MonoReflectionType *etype;
- MonoAssembly *assembly;
+ MonoReflectionAssembly *assembly;
guint32 attrs;
guint32 rank;
MonoBoolean isbyref, ispointer, isprimitive;
guint32 text_rva;
guint32 metadata_rva;
GHashTable *typeref;
+ GHashTable *handleref;
MonoGHashTable *token_fixups;
MonoDynamicStream sheap;
MonoDynamicStream code; /* used to store method headers and bytecode */
MonoDynamicTable tables [64];
} MonoDynamicAssembly;
-typedef struct {
- MonoObject object;
- MonoAssembly *assembly;
-} MonoReflectionAssembly;
-
typedef struct {
MonoReflectionAssembly assembly;
MonoDynamicAssembly *dynamic_assembly;
MonoReflectionMethodBuilder *entry_point;
MonoArray *modules;
MonoString *name;
+ MonoString *dir;
MonoArray *cattrs;
} MonoReflectionAssemblyBuilder;
MonoReflectionModule module;
MonoArray *types;
MonoArray *cattrs;
+ MonoArray *guid;
guint32 table_idx;
MonoReflectionAssemblyBuilder *assemblyb;
} MonoReflectionModuleBuilder;
+char* mono_type_get_name (MonoType *type);
int mono_reflection_parse_type (char *name, MonoTypeNameParse *info);
MonoType* mono_reflection_get_type (MonoImage* image, MonoTypeNameParse *info, gboolean ignorecase);
/* note: this one is slightly different: we keep the whole array of params in the cache */
MonoReflectionParameter** mono_param_get_objects (MonoDomain *domain, MonoMethod *method);
-
-typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params);
-
-extern MonoInvokeFunc mono_default_runtime_invoke;
-
-void mono_install_runtime_invoke (MonoInvokeFunc func);
-MonoObject* mono_runtime_invoke (MonoMethod *method, void *obj, void **params);
MonoArray* mono_reflection_get_custom_attrs (MonoObject *obj);
MonoArray* mono_reflection_get_custom_attrs_blob (MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *porpValues, MonoArray *fields, MonoArray* fieldValues);