From f17218e984060a95f8d9958cd7e2b48f9c3ed3c0 Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Wed, 23 Sep 2009 20:13:26 +0000 Subject: [PATCH] 2009-06-25 Miguel de Icaza * gc.c: Raise a NullArgumentException if the object passed is null. svn path=/trunk/mono/; revision=142510 --- mono/metadata/ChangeLog | 5 +++++ mono/metadata/gc.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index a954bee1fc6..249093b5b95 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2009-06-25 Miguel de Icaza + + * gc.c: Raise a NullArgumentException if the object passed is + null. + 2009-09-22 Zoltan Varga * image.c (mono_image_close): Atomically decrement the reference count and diff --git a/mono/metadata/gc.c b/mono/metadata/gc.c index 54dffb3865c..4bae1acdcdd 100644 --- a/mono/metadata/gc.c +++ b/mono/metadata/gc.c @@ -266,7 +266,12 @@ object_register_finalizer (MonoObject *obj, void (*callback)(void *, void*)) { #if HAVE_BOEHM_GC guint offset = 0; - MonoDomain *domain = obj->vtable->domain; + MonoDomain *domain; + + if (obj == NULL) + mono_raise_exception (mono_get_exception_argument_null ("obj")); + + domain = obj->vtable->domain; #ifndef GC_DEBUG /* This assertion is not valid when GC_DEBUG is defined */ @@ -291,6 +296,9 @@ object_register_finalizer (MonoObject *obj, void (*callback)(void *, void*)) GC_REGISTER_FINALIZER_NO_ORDER ((char*)obj - offset, callback, GUINT_TO_POINTER (offset), NULL, NULL); #elif defined(HAVE_SGEN_GC) + if (obj == NULL) + mono_raise_exception (mono_get_exception_argument_null ("obj")); + mono_gc_register_for_finalization (obj, callback); #endif } -- 2.11.4.GIT