typedef struct {
MonoObject object;
- gint32 capacity;
gint32 length;
- MonoArray *chars;
+ MonoString *str;
} MonoStringBuilder;
typedef struct {
typedef struct {
MonoType *type;
gpointer value;
+ MonoClass *klass;
} MonoTypedRef;
typedef struct {
MonoBoolean sync_completed;
MonoBoolean completed;
MonoBoolean endinvoke_called;
- MonoArray *remoting_args;
- MonoObject *remoting_rval;
- MonoObject *remoting_exc;
} MonoAsyncResult;
typedef struct {
MonoObject object;
MonoRealProxy *rp;
MonoClass *klass;
+ MonoBoolean custom_type_info;
} MonoTransparentProxy;
+/* This is a copy of System.Runtime.Remoting.Messaging.CallType */
+typedef enum {
+ CallType_Sync = 0,
+ CallType_BeginInvoke = 1,
+ CallType_EndInvoke = 2,
+ CallType_OneWay = 3
+} MonoCallType;
+
typedef struct {
MonoObject obj;
MonoReflectionMethod *method;
MonoObject *rval;
MonoObject *exc;
MonoAsyncResult *async_result;
+ guint32 call_type;
} MonoMethodMessage;
typedef struct {
MonoObject obj;
HANDLE handle;
MonoObject *culture_info;
+ MonoObject *ui_culture_info;
MonoBoolean threadpool_thread;
guint32 state;
MonoException *abort_exc;
gpointer *static_data;
gpointer jit_data;
gpointer lock_data;
+ GSList *appdomain_refs;
} MonoThread;
typedef struct {
MonoObject *additional;
} MonoStreamingContext;
+typedef struct {
+ MonoObject obj;
+ MonoBoolean readOnly;
+ MonoString *AMDesignator;
+ MonoString *PMDesignator;
+ MonoString *DateSeparator;
+ MonoString *TimeSeparator;
+ MonoString *ShortDatePattern;
+ MonoString *LongDatePattern;
+ MonoString *ShortTimePattern;
+ MonoString *LongTimePattern;
+ MonoString *MonthDayPattern;
+ MonoString *YearMonthPattern;
+ MonoString *FullDateTimePattern;
+ MonoString *RFC1123Pattern;
+ MonoString *SortableDateTimePattern;
+ MonoString *UniversalSortableDateTimePattern;
+ guint32 FirstDayOfWeek;
+ MonoObject *Calendar;
+ guint32 CalendarWeekRule;
+ MonoArray *AbbreviatedDayNames;
+ MonoArray *DayNames;
+ MonoArray *MonthNames;
+ MonoArray *AbbreviatedMonthNames;
+} MonoDateTimeFormatInfo;
+
+typedef struct
+{
+ MonoObject obj;
+ MonoBoolean readOnly;
+ MonoString *decimalFormats;
+ MonoString *currencyFormats;
+ MonoString *percentFormats;
+ MonoString *digitPattern;
+ MonoString *zeroPattern;
+ gint32 currencyDecimalDigits;
+ MonoString *currencyDecimalSeparator;
+ MonoString *currencyGroupSeparator;
+ MonoArray *currencyGroupSizes;
+ gint32 currencyNegativePattern;
+ gint32 currencyPositivePattern;
+ MonoString *currencySymbol;
+ MonoString *naNSymbol;
+ MonoString *negativeInfinitySymbol;
+ MonoString *negativeSign;
+ guint32 numberDecimalDigits;
+ MonoString *numberDecimalSeparator;
+ MonoString *numberGroupSeparator;
+ MonoArray *numberGroupSizes;
+ gint32 numberNegativePattern;
+ gint32 percentDecimalDigits;
+ MonoString *percentDecimalSeparator;
+ MonoString *percentGroupSeparator;
+ MonoArray *percentGroupSizes;
+ gint32 percentNegativePattern;
+ gint32 percentPositivePattern;
+ MonoString *percentSymbol;
+ MonoString *perMilleSymbol;
+ MonoString *positiveInfinitySymbol;
+ MonoString *positiveSign;
+} MonoNumberFormatInfo;
+
+typedef struct {
+ MonoObject obj;
+ gint32 lcid;
+ gpointer ICU_collator;
+} MonoCompareInfo;
+
+typedef struct {
+ MonoObject obj;
+ MonoBoolean is_read_only;
+ gint32 lcid;
+ MonoBoolean use_user_override;
+ MonoNumberFormatInfo *number_format;
+ MonoDateTimeFormatInfo *datetime_format;
+ MonoObject *textinfo;
+ MonoString *name;
+ MonoString *displayname;
+ MonoString *englishname;
+ MonoString *nativename;
+ MonoString *iso3lang;
+ MonoString *iso2lang;
+ MonoString *icu_name;
+ MonoString *win3lang;
+ MonoCompareInfo *compareinfo;
+} MonoCultureInfo;
+
+typedef struct {
+ MonoObject obj;
+ MonoString *str;
+ gint32 options;
+ MonoArray *key;
+ gint32 lcid;
+} MonoSortKey;
+
typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params, MonoObject **exc);
typedef gpointer (*MonoCompileFunc) (MonoMethod *method);
typedef void (*MonoMainThreadFunc) (gpointer user_data);
#define mono_string_chars(s) ((gunichar2*)(s)->chars)
#define mono_string_length(s) ((s)->length)
+#define mono_stringbuilder_capacity(sb) ((sb)->str->length)
MonoObject *
mono_object_new (MonoDomain *domain, MonoClass *klass);
MonoObject *
mono_object_isinst (MonoObject *obj, MonoClass *klass);
+MonoObject *
+mono_object_isinst_mbyref (MonoObject *obj, MonoClass *klass);
+
+MonoObject *
+mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass);
+
typedef void (*MonoExceptionFunc) (MonoException *ex);
void
mono_install_handler (MonoExceptionFunc func);
-G_GNUC_NORETURN void
+void
mono_raise_exception (MonoException *ex);
void
void
mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value);
+MonoObject *
+mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObject *obj);
+
void
mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc);