From: Aleksey Kliger (λgeek) Date: Tue, 27 Jun 2017 14:44:30 +0000 (-0400) Subject: Merge pull request #5120 from lambdageek/bug-57744 X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=af2b3eb197868b4aa8a223260ad64373ce8605f8;hp=4aa28ede12ca06a77c2b3578cc5a9d8a1d7c4bc2;p=mono.git Merge pull request #5120 from lambdageek/bug-57744 [reflection] Convert correct MonoError to an exn in Assembly.GetTypes () --- diff --git a/mcs/class/corlib/System.Reflection/ReflectionTypeLoadException.cs b/mcs/class/corlib/System.Reflection/ReflectionTypeLoadException.cs deleted file mode 100644 index 37384a23ab1..00000000000 --- a/mcs/class/corlib/System.Reflection/ReflectionTypeLoadException.cs +++ /dev/null @@ -1,86 +0,0 @@ -// -// System.Reflection.ReflectionTypeLoadException -// -// Sean MacIsaac (macisaac@ximian.com) -// Dunan Mak (duncan@ximian.com) -// -// (C) 2001 Ximian, Inc. -// - -// -// Copyright (C) 2004 Novell, Inc (http://www.novell.com) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -using System.Globalization; -using System.Runtime.Serialization; -using System.Runtime.InteropServices; - -namespace System.Reflection -{ - [ComVisible (true)] - [Serializable] - public sealed class ReflectionTypeLoadException : SystemException - { - // Fields - private Exception[] loaderExceptions; - private Type[] types; - - // Constructors - public ReflectionTypeLoadException (Type[] classes, Exception[] exceptions) - : base (Locale.GetText ("The classes in the module cannot be loaded.")) - { - loaderExceptions = exceptions; - types = classes; - } - - public ReflectionTypeLoadException (Type[] classes, Exception[] exceptions, string message) - : base (message) - { - loaderExceptions = exceptions; - types = classes; - } - - private ReflectionTypeLoadException (SerializationInfo info, StreamingContext sc): base (info, sc) - { - types = (Type[]) info.GetValue ("Types", typeof (Type[])); - loaderExceptions = (Exception[]) info.GetValue ("Exceptions", typeof (Exception[])); - } - - // Properties - public Type[] Types - { - get { return types; } - } - - public Exception[] LoaderExceptions - { - get { return loaderExceptions; } - } - - public override void GetObjectData (SerializationInfo info, StreamingContext context) - { - base.GetObjectData (info, context); - info.AddValue ("Types", types); - info.AddValue ("Exceptions", loaderExceptions); - } - - } -} diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index 9692845d190..76ccc633aac 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -5465,7 +5465,7 @@ image_get_type (MonoDomain *domain, MonoImage *image, MonoTableInfo *tdef, int t MONO_HANDLE_ARRAY_SETREF (res, count, rt); } else { - MonoException *ex = mono_error_convert_to_exception (error); + MonoException *ex = mono_error_convert_to_exception (&klass_error); MONO_HANDLE_ARRAY_SETRAW (exceptions, count, ex); } HANDLE_FUNCTION_RETURN ();