From 3b6be82db4842f47d43d016c7dca3d600b4f132a Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 29 Jun 2004 06:22:18 +0000 Subject: [PATCH] 2004-06-29 Martin Baulig * mono-debug.c (mono_debug_add_method): Protect the whole function in mono_debugger_lock(), not just parts of it. svn path=/trunk/mono/; revision=30505 --- mono/metadata/ChangeLog | 4 ++++ mono/metadata/mono-debug.c | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index c8f94ed3cb57a..03869d5b735ea 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,7 @@ +2004-06-29 Martin Baulig + + * mono-debug.c (mono_debug_add_method): Protect the whole function + in mono_debugger_lock(), not just parts of it. Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro diff --git a/mono/metadata/mono-debug.c b/mono/metadata/mono-debug.c index e7b718a0c3795..b8503ecbc4be7 100644 --- a/mono/metadata/mono-debug.c +++ b/mono/metadata/mono-debug.c @@ -266,23 +266,29 @@ mono_debug_add_method (MonoMethod *method, MonoDebugMethodJitInfo *jit, MonoDoma MonoDebugHandle *handle; MonoDebugMethodInfo *minfo; + mono_debugger_lock (); + mono_class_init (klass); if ((method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) || (method->iflags & METHOD_IMPL_ATTRIBUTE_RUNTIME) || (method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL) || - (method->flags & METHOD_ATTRIBUTE_ABSTRACT)) + (method->flags & METHOD_ATTRIBUTE_ABSTRACT)) { + mono_debugger_unlock (); return; + } handle = _mono_debug_get_image (klass->image); - if (!handle) + if (!handle) { + mono_debugger_unlock (); return; + } minfo = _mono_debug_lookup_method (method); - if (!minfo) + if (!minfo) { + mono_debugger_unlock (); return; - - mono_debugger_lock (); + } domain_data = mono_debug_get_domain_data (handle, domain); if (domain_data->jit [minfo->index]) {