X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fobject.h;h=ff54ff0bc7625a6eaad57a5d12cee9d126e9fe16;hb=9f6dc46ae38140a6961e71292499fe2079cde75b;hp=af36183112333aa905d7cad424b686ea63231118;hpb=e9b93e27881e24b6791e9412a2655c830b2189b9;p=mono.git diff --git a/mono/metadata/object.h b/mono/metadata/object.h index af361831123..ff54ff0bc76 100644 --- a/mono/metadata/object.h +++ b/mono/metadata/object.h @@ -31,11 +31,12 @@ typedef struct _MonoObject { MonoThreadsSync *synchronisation; } MonoObject; -typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params, MonoObject **exc); +typedef MonoObject* (*MonoInvokeFunc) (MonoMethod *method, void *obj, void **params, MonoObject **exc, MonoError *error); typedef void* (*MonoCompileFunc) (MonoMethod *method); typedef void (*MonoMainThreadFunc) (void* user_data); #define MONO_OBJECT_SETREF(obj,fieldname,value) do { \ + g_assert (sizeof((obj)->fieldname) == sizeof (gpointer*)); \ mono_gc_wbarrier_set_field ((MonoObject*)(obj), &((obj)->fieldname), (MonoObject*)value); \ /*(obj)->fieldname = (value);*/ \ } while (0) @@ -68,7 +69,7 @@ typedef void (*MonoMainThreadFunc) (void* user_data); MONO_API mono_unichar2 *mono_string_chars (MonoString *s); MONO_API int mono_string_length (MonoString *s); -MONO_API MonoObject * +MONO_RT_EXTERNAL_ONLY MONO_API MonoObject * mono_object_new (MonoDomain *domain, MonoClass *klass); MONO_API MonoObject * @@ -115,6 +116,7 @@ mono_ldstr (MonoDomain *domain, MonoImage *image, uint32_t str_index); MONO_API MonoString* mono_string_is_interned (MonoString *str); +MONO_RT_EXTERNAL_ONLY MONO_API MonoString* mono_string_intern (MonoString *str); @@ -145,6 +147,9 @@ mono_string_to_utf32 (MonoString *string_obj); MONO_API MonoString * mono_string_from_utf16 (mono_unichar2 *data); +MONO_API MonoString * +mono_string_from_utf32 (mono_unichar4 *data); + MONO_API mono_bool mono_string_equal (MonoString *s1, MonoString *s2); @@ -193,6 +198,9 @@ mono_monitor_try_enter (MonoObject *obj, uint32_t ms); MONO_API mono_bool mono_monitor_enter (MonoObject *obj); +MONO_API void +mono_monitor_enter_v4 (MonoObject *obj, char *lock_taken); + MONO_API unsigned int mono_object_get_size (MonoObject *o); @@ -202,15 +210,18 @@ mono_monitor_exit (MonoObject *obj); MONO_API void mono_raise_exception (MonoException *ex); +MONO_RT_EXTERNAL_ONLY MONO_API void mono_runtime_object_init (MonoObject *this_obj); +MONO_RT_EXTERNAL_ONLY MONO_API void mono_runtime_class_init (MonoVTable *vtable); MONO_API MonoMethod* mono_object_get_virtual_method (MonoObject *obj, MonoMethod *method); +MONO_RT_EXTERNAL_ONLY MONO_API MonoObject* mono_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc);