Merge pull request #1857 from slluis/fix-assembly-resolver
[mono.git] / mono / metadata / object-internals.h
index ccbe6d92e4dad1c86565b59910db201a0197dd6a..15482c9771dfa19b8570bcbf8fa8bacf15c5c015 100644 (file)
@@ -87,7 +87,7 @@
                return retval;                                                                            \
        };                              }G_STMT_END
 
-#define mono_string_builder_length(sb) sb->chunkOffset + sb->chunkChars->max_length
+#define mono_string_builder_capacity(sb) sb->chunkOffset + sb->chunkChars->max_length
 #define mono_string_builder_string_length(sb) sb->chunkOffset + sb->chunkLength
 
 /* 
@@ -266,12 +266,6 @@ typedef struct {
        MonoString *param_name;
 } MonoArgumentException;
 
-typedef struct {
-       MonoSystemException base;
-       MonoString *msg;
-       MonoString *type_name;
-} MonoTypeLoadException;
-
 typedef struct {
        MonoObject   object;
        MonoObject  *async_state;
@@ -358,11 +352,23 @@ typedef struct {
        guint32     call_type;
 } MonoMethodMessage;
 
+/* Keep in sync with the System.MonoAsyncCall */
+typedef struct {
+       MonoObject object;
+       MonoMethodMessage *msg;
+       MonoMethod *cb_method;
+       MonoDelegate *cb_target;
+       MonoObject *state;
+       MonoObject *res;
+       MonoArray *out_args;
+} MonoAsyncCall;
+
 typedef struct {
        MonoObject obj;
        gint32 il_offset;
        gint32 native_offset;
        gint64 method_address;
+       gint32 method_index;
        MonoReflectionMethod *method;
        MonoString *filename;
        gint32 line;
@@ -389,7 +395,6 @@ struct _MonoInternalThread {
        HANDLE      start_notify;
        gpointer stack_ptr;
        gpointer *static_data;
-       gpointer jit_data;
        void *thread_info; /*This is MonoThreadInfo*, but to simplify dependencies, let's make it a void* here. */
        MonoAppContext *current_appcontext;
        MonoException *pending_exception;
@@ -399,14 +404,9 @@ struct _MonoInternalThread {
        gpointer appdomain_refs;
        /* This is modified using atomic ops, so keep it a gint32 */
        gint32 interruption_requested;
-       gpointer suspend_event;
-       gpointer suspended_event;
-       gpointer resume_event;
        mono_mutex_t *synch_cs;
        MonoBoolean threadpool_thread;
-       MonoBoolean thread_dump_requested;
        MonoBoolean thread_interrupt_requested;
-       gpointer end_stack; /* This is only used when running in the debugger. */
        int stack_size;
        guint8  apartment_state;
        gint32 critical_region_level;
@@ -415,9 +415,7 @@ struct _MonoInternalThread {
        MonoThreadManageCallback manage_callback;
        gpointer interrupt_on_stop;
        gsize    flags;
-       gpointer android_tid;
        gpointer thread_pinning_ref;
-       gint32 ignore_next_signal;
        MonoMethod *async_invoke_method;
        /* 
         * These fields are used to avoid having to increment corlib versions
@@ -433,7 +431,6 @@ struct _MonoThread {
        MonoObject obj;
        struct _MonoInternalThread *internal_thread;
        MonoObject *start_obj;
-       MonoObject *ec_to_set;
 };
 
 typedef struct {
@@ -474,37 +471,34 @@ typedef struct {
 typedef struct 
 {
        MonoObject obj;
-       MonoBoolean readOnly;
-       MonoString *decimalFormats;
-       MonoString *currencyFormats;
-       MonoString *percentFormats;
-       MonoString *digitPattern;
-       MonoString *zeroPattern;
-       gint32 currencyDecimalDigits;
-       MonoString *currencyDecimalSeparator;
-       MonoString *currencyGroupSeparator;
+       MonoArray *numberGroupSizes;
        MonoArray *currencyGroupSizes;
-       gint32 currencyNegativePattern;
-       gint32 currencyPositivePattern;
-       MonoString *currencySymbol;
-       MonoString *naNSymbol;
-       MonoString *negativeInfinitySymbol;
+       MonoArray *percentGroupSizes;
+       MonoString *positiveSign;
        MonoString *negativeSign;
-       guint32 numberDecimalDigits;
        MonoString *numberDecimalSeparator;
        MonoString *numberGroupSeparator;
-       MonoArray *numberGroupSizes;
-       gint32 numberNegativePattern;
-       gint32 percentDecimalDigits;
+       MonoString *currencyGroupSeparator;
+       MonoString *currencyDecimalSeparator;
+       MonoString *currencySymbol;
+       MonoString *ansiCurrencySymbol; /* unused */
+       MonoString *naNSymbol;
+       MonoString *positiveInfinitySymbol;
+       MonoString *negativeInfinitySymbol;
        MonoString *percentDecimalSeparator;
        MonoString *percentGroupSeparator;
-       MonoArray *percentGroupSizes;
-       gint32 percentNegativePattern;
-       gint32 percentPositivePattern;
        MonoString *percentSymbol;
        MonoString *perMilleSymbol;
-       MonoString *positiveInfinitySymbol;
-       MonoString *positiveSign;
+       MonoString *nativeDigits; /* unused */
+       gint32 dataItem; /* unused */
+       guint32 numberDecimalDigits;
+       gint32 currencyDecimalDigits;
+       gint32 currencyPositivePattern;
+       gint32 currencyNegativePattern;
+       gint32 numberNegativePattern;
+       gint32 percentPositivePattern;
+       gint32 percentNegativePattern;
+       gint32 percentDecimalDigits;
 } MonoNumberFormatInfo;
 
 typedef struct {
@@ -640,6 +634,12 @@ MonoAsyncResult *
 mono_async_result_new      (MonoDomain *domain, HANDLE handle, 
                             MonoObject *state, gpointer data, MonoObject *object_data);
 
+MonoObject *
+mono_async_result_invoke    (MonoAsyncResult *ares, MonoObject **exc);
+
+MonoObject *
+ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke (MonoAsyncResult *this);
+
 MonoWaitHandle *
 mono_wait_handle_new       (MonoDomain *domain, HANDLE handle);
 
@@ -795,7 +795,7 @@ struct _MonoDelegate {
 typedef struct _MonoMulticastDelegate MonoMulticastDelegate;
 struct _MonoMulticastDelegate {
        MonoDelegate delegate;
-       MonoMulticastDelegate *prev;
+       MonoArray *delegates;
 };
 
 struct _MonoReflectionField {
@@ -1274,27 +1274,13 @@ typedef struct {
        gint16 size_param_index;
 } MonoReflectionMarshalAsAttribute;
 
-
 typedef struct {
        MonoObject object;
        gint32 call_conv;
        gint32 charset;
-       MonoString *dll;
-       MonoString *entry_point;
-       MonoBoolean exact_spelling;
-       MonoBoolean preserve_sig;
-       MonoBoolean set_last_error;
        MonoBoolean best_fit_mapping;
        MonoBoolean throw_on_unmappable;
-} MonoReflectionDllImportAttribute;
-
-typedef struct {
-       MonoObject object;
-       gint32 call_conv;
-       gint32 charset;
        MonoBoolean set_last_error;
-       MonoBoolean best_fit_mapping;
-       MonoBoolean throw_on_unmappable;
 } MonoReflectionUnmanagedFunctionPointerAttribute;
 
 typedef struct {
@@ -1648,6 +1634,12 @@ mono_exception_get_managed_backtrace (MonoException *exc);
 void
 mono_copy_value (MonoType *type, void *dest, void *value, int deref_pointer);
 
+void
+mono_error_raise_exception (MonoError *target_error);
+
+void
+mono_error_set_pending_exception (MonoError *error);
+
 #endif /* __MONO_OBJECT_INTERNALS_H__ */