Hi, Thanks for your input,
I have added it as a Bug, https://bugzilla.novell.com/show_bug.cgi?id=463843 On Tue, 2009-01-06 at 10:06 -0500, Bill Holmes wrote: > Tom, > > I agree with Kornél. Please add mono_init_com_types to > GetIUnknownForObjectInternal and GetIDispatchForObjectInternal. I do > not understand why it would be needed in QueryInterfaceInternal. Even > if the object is managed, cominterop_ccw_queryinterface would need the > mono_init_com_types call, but that should have been called from > GetIUnknownForObjectInternal (when you add it.) > > Another way to put it is, what are you calling QueryInterface on that > needs the types initialized from mono_init_com_types? yep I understand, I'm only passing objects to QueryInterfaceInternal that have been retrieved by calling Get???ForObjectInternal, and so adding it to QueryInterfaceInternal isn't necessary. > > -bill Attached is the patch which adds mono_init_com_types to suggested functions. Thanks, Tom
Index: mono/metadata/marshal.c =================================================================== --- mono/metadata/marshal.c (revision 121548) +++ mono/metadata/marshal.c (working copy) @@ -10733,6 +10733,8 @@ if (!object) return NULL; + mono_init_com_types (); + if (cominterop_object_is_rcw (object)) { MonoClass *klass = NULL; MonoRealProxy* real_proxy = NULL; @@ -10793,6 +10795,8 @@ ves_icall_System_Runtime_InteropServices_Marshal_GetIDispatchForObjectInternal (MonoObject* object) { #ifndef DISABLE_COM + mono_init_com_types (); + return cominterop_get_idispatch_for_object (object); #else g_assert_not_reached ();
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list