* marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
result arguments (someDelegate.EndInvoke (unrelatedAres)).
svn path=/trunk/mono/; revision=70742
+2007-01-09 Robert Jordan <robertj@gmx.net>
+
+ * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
+ result arguments (someDelegate.EndInvoke (unrelatedAres)).
+
2007-01-09 Raja R Harinath <rharinath@novell.com>
* class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
ares = mono_array_get (msg->args, gpointer, sig->param_count - 1);
g_assert (ares);
+ if (ares->async_delegate != delegate && mono_get_runtime_info ()->framework_version [0] >= '2') {
+ mono_raise_exception (mono_get_exception_invalid_operation (
+ "The IAsyncResult object provided does not match this delegate."));
+ return NULL;
+ }
+
if (delegate->target && mono_object_class (delegate->target) == mono_defaults.transparent_proxy_class) {
MonoTransparentProxy* tp = (MonoTransparentProxy *)delegate->target;
msg = (MonoMethodMessage *)mono_object_new (domain, mono_defaults.mono_method_message_class);