#include <mono/metadata/object.h>
#include <mono/metadata/reflection.h>
+#include <mono/metadata/mempool.h>
#include <mono/io-layer/io-layer.h>
#if 1
MonoObject *async_state;
MonoObject *handle;
MonoObject *async_delegate;
- gpointer data;
+ gpointer *data;
+ MonoObject *object_data;
MonoBoolean sync_completed;
MonoBoolean completed;
MonoBoolean endinvoke_called;
MonoObject obj;
int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks */
HANDLE handle;
- MonoObject **culture_info;
- MonoObject **ui_culture_info;
+ MonoArray *cached_culture_info;
+ gpointer unused1;
MonoBoolean threadpool_thread;
gunichar2 *name;
guint32 name_len;
* when a new field is added to the unmanaged MonoThread structure.
*/
MonoBoolean thread_dump_requested;
- gpointer unused2;
+ gpointer end_stack; /* This is only used when running in the debugger. */
gpointer unused3;
gpointer unused4;
gpointer unused5;
gint32 lcid;
} MonoSortKey;
+typedef struct {
+ MonoObject object;
+ guint16 intType;
+} MonoInterfaceTypeAttribute;
+
/* used to free a dynamic method */
typedef void (*MonoFreeMethodFunc) (MonoDomain *domain, MonoMethod *method);
MonoAsyncResult *
mono_async_result_new (MonoDomain *domain, HANDLE handle,
- MonoObject *state, gpointer data);
+ MonoObject *state, gpointer data, MonoObject *object_data);
MonoWaitHandle *
mono_wait_handle_new (MonoDomain *domain, HANDLE handle);
MonoString *filename;
guint32 attrs;
guint32 offset;
+ MonoObject *stream;
} MonoReflectionResource;
typedef struct {
void
mono_release_type_locks (MonoThread *thread);
+char *
+mono_string_to_utf8_mp (MonoMemPool *mp, MonoString *s);
+
MonoArray*
mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array);