Merge branch 'upstream'

Former-commit-id: 459eaaa61075e30f60346bd93ea687d2be96520f
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2018-06-20 08:28:47 +00:00
commit c38490cd13
40 changed files with 113 additions and 37 deletions

View File

@ -1 +1 @@
cab2a3ba1d347f7b903e9002f483aab13a5f6262
89c8ccc926a20e76b6d843afaa322fe7afdc6867

View File

@ -1 +1 @@
29ff151aff4578c2f4f9911b05e8ef2b9d88bfa7
bc54f17e2eb5b0b17216ec2f470e310a41ada7b2

View File

@ -34,7 +34,7 @@ static class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "5.14.0.136";
public const string MonoVersion = "5.14.0.139";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -172,7 +172,7 @@ namespace System.Reflection.Emit {
CreateDynMethod ();
deleg = Delegate.CreateDelegate (delegateType, this);
deleg = Delegate.CreateDelegate (delegateType, null, this);
return deleg;
}

View File

@ -744,6 +744,55 @@ namespace MonoTests.System.Reflection.Emit
Assert.AreEqual (typeof (TypedRefTarget), TypedReference.GetTargetType (tr));
}
#endif
static Action GenerateProblematicMethod (bool add_extra, bool mismatch = false, bool use_vts = false)
{
Type this_type = typeof(object);
Type bound_type = typeof(object);
if (mismatch) {
this_type = typeof (string);
bound_type = typeof (DynamicMethodTest);
} else if (use_vts) {
this_type = typeof (int);
bound_type = typeof (long);
}
Type[] args;
if (add_extra)
args = new[] { this_type };
else
args = new Type [0];
var mb = new DynamicMethod("Peek", null, args, bound_type, true);
var il = mb.GetILGenerator ();
il.Emit(OpCodes.Ret);
return (Action) mb.CreateDelegate(typeof(Action));
}
[Test]
public void ExtraArgGetsIgnored ()
{
GenerateProblematicMethod (true) ();
}
[Test]
public void ExactNumberOfArgsWork ()
{
GenerateProblematicMethod (false) ();
}
[Test]
public void ExtraArgWithMismatchedTypes ()
{
GenerateProblematicMethod (true, mismatch: true) ();
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void ExtraArgWithValueType ()
{
GenerateProblematicMethod (true, use_vts: true) ();
}
}
}

View File

@ -1 +1 @@
9bc5ab623e915f2b061bb11931e858e323d28b81
7cf6299f6f67f965e15bdd8ed523ffd6bcfa90fa

View File

@ -1 +1 @@
81704786f614b9566b068099243cbbcec5e01431
1d1b84a3ab81fa4a1113386171175288b709d825

View File

@ -1 +1 @@
87d7ee9183655cd6dd498ab61f9f538047e37154
c41bcabda2db97799bd15972d5ef027ed96e13e4

View File

@ -1 +1 @@
4adc4d0533a38214b4b7bf8f3c11b82eb6788344
2fd9c7b9ba1d6ff75925b7280ae014359cee081d

View File

@ -1 +1 @@
0ad035417f81239130a7a6ee40c9976ca253b0b0
6655dcd3a1b322285a016ceb910942baf10bff4c

View File

@ -1 +1 @@
5cc86fb9eeda0070628ec28fbba5a3f73164ee2d
f1a773b76dd88599b9e97be795b4d8631972874e

View File

@ -1 +1 @@
d896a1a2344d8d2e024c8ef3e88be8eb02613d26
a0da33ba266c13c6e340af0c0b367682fd1ed2a8

View File

@ -1 +1 @@
9bc5ab623e915f2b061bb11931e858e323d28b81
7cf6299f6f67f965e15bdd8ed523ffd6bcfa90fa

View File

@ -1 +1 @@
81704786f614b9566b068099243cbbcec5e01431
1d1b84a3ab81fa4a1113386171175288b709d825

View File

@ -1 +1 @@
87d7ee9183655cd6dd498ab61f9f538047e37154
c41bcabda2db97799bd15972d5ef027ed96e13e4

View File

@ -1 +1 @@
4adc4d0533a38214b4b7bf8f3c11b82eb6788344
2fd9c7b9ba1d6ff75925b7280ae014359cee081d

View File

@ -1 +1 @@
0ad035417f81239130a7a6ee40c9976ca253b0b0
6655dcd3a1b322285a016ceb910942baf10bff4c

View File

@ -1 +1 @@
5cc86fb9eeda0070628ec28fbba5a3f73164ee2d
f1a773b76dd88599b9e97be795b4d8631972874e

View File

@ -1 +1 @@
d896a1a2344d8d2e024c8ef3e88be8eb02613d26
a0da33ba266c13c6e340af0c0b367682fd1ed2a8

View File

@ -1 +1 @@
9bc5ab623e915f2b061bb11931e858e323d28b81
7cf6299f6f67f965e15bdd8ed523ffd6bcfa90fa

View File

@ -1 +1 @@
81704786f614b9566b068099243cbbcec5e01431
1d1b84a3ab81fa4a1113386171175288b709d825

View File

@ -1 +1 @@
87d7ee9183655cd6dd498ab61f9f538047e37154
c41bcabda2db97799bd15972d5ef027ed96e13e4

View File

@ -1 +1 @@
4adc4d0533a38214b4b7bf8f3c11b82eb6788344
2fd9c7b9ba1d6ff75925b7280ae014359cee081d

View File

@ -1 +1 @@
0ad035417f81239130a7a6ee40c9976ca253b0b0
6655dcd3a1b322285a016ceb910942baf10bff4c

View File

@ -1 +1 @@
5cc86fb9eeda0070628ec28fbba5a3f73164ee2d
f1a773b76dd88599b9e97be795b4d8631972874e

View File

@ -1 +1 @@
d896a1a2344d8d2e024c8ef3e88be8eb02613d26
a0da33ba266c13c6e340af0c0b367682fd1ed2a8

View File

@ -1 +1 @@
9f49eda52fe1c7559833769a8e1bfc7ebc7fa5dd
07ed49b2376a13e417f121868ff95c8a890ca137

View File

@ -20,4 +20,7 @@ mono_image_load_module_checked (MonoImage *image, int idx, MonoError *error);
MonoImage *
mono_image_open_a_lot (const char *fname, MonoImageOpenStatus *status, gboolean refonly, gboolean load_from_context);
gboolean
mono_is_problematic_image (MonoImage *image);
#endif /* __MONO_METADATA_IMAGE_INTERNALS_H__ */

View File

@ -1286,8 +1286,8 @@ hash_guid (const char *str)
return h;
}
static gboolean
is_problematic_image (MonoImage *image)
gboolean
mono_is_problematic_image (MonoImage *image)
{
int h = hash_guid (image->guid);
@ -1360,7 +1360,7 @@ do_mono_image_load (MonoImage *image, MonoImageOpenStatus *status,
if (!mono_image_load_cli_data (image))
goto invalid_image;
if (!image->ref_only && is_problematic_image (image)) {
if (!image->ref_only && mono_is_problematic_image (image)) {
if (image->load_from_context) {
mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY, "Loading problematic image %s", image->name);
} else {
@ -1682,6 +1682,18 @@ mono_image_open_a_lot (const char *fname, MonoImageOpenStatus *status, gboolean
mono_images_lock ();
image = g_hash_table_lookup (loaded_images, absfname);
if (image) { // Image already loaded
if (!load_from_context && mono_is_problematic_image (image)) {
// If we previously loaded a problematic image, don't
// return it if we're not in LoadFrom context.
//
// Note: this has an interaction with
// mono_problematic_image_reprobe - at that point we
// have a problematic image opened, but we don't want
// to see it again when we go searching for an image
// to load.
mono_images_unlock ();
return NULL;
}
g_assert (image->is_module_handle);
if (image->has_entry_point && image->ref_count == 0) {
/* Increment reference count on images loaded outside of the runtime. */
@ -1752,6 +1764,18 @@ mono_image_open_a_lot (const char *fname, MonoImageOpenStatus *status, gboolean
g_free (absfname);
if (image) { // Image already loaded
if (!refonly && !load_from_context && mono_is_problematic_image (image)) {
// If we previously loaded a problematic image, don't
// return it if we're not in LoadFrom context.
//
// Note: this has an interaction with
// mono_problematic_image_reprobe - at that point we
// have a problematic image opened, but we don't want
// to see it again when we go searching for an image
// to load.
mono_images_unlock ();
return NULL;
}
mono_image_addref (image);
mono_images_unlock ();
return image;

View File

@ -1 +1 @@
#define FULL_VERSION "explicit/07c8f25"
#define FULL_VERSION "explicit/f22c8b7"

View File

@ -109,7 +109,7 @@ parse_args (const char *desc)
const char *p;
gboolean in_quotes = FALSE;
char quote_char = '\0';
char *buffer = malloc (strlen (desc));
char *buffer = g_malloc (strlen (desc) + 1);
int buffer_pos = 0;
for (p = desc; *p; p++){

Binary file not shown.

View File

@ -1 +1 @@
c3f0641acdac4e43c9d1b8f5585d6298603b8f5e
8670cedad68dc7718b2683bfe933234b3c1ad30b

Binary file not shown.

View File

@ -1 +1 @@
8d09284808a902465ad7ff9278030227575e9cd2
32fe2be0da4724f5d626f8e4504607f8354b3b9b

Binary file not shown.

View File

@ -1 +1 @@
f16d96dd0d92df2d76ff723392d9ccb1f6066ad2
77ad9876884d107a1ba863b885265a46f2be3878

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: mono 5.14.0.136\n"
"Project-Id-Version: mono 5.14.0.139\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
"POT-Creation-Date: 2018-06-19 08:07+0000\n"
"POT-Creation-Date: 2018-06-20 08:06+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

View File

@ -1 +1 @@
a0ba3a28a5496c0ca3827f6b69b6a0343fe950a4
0d376e7df1d399ca0edbccdea2097803e7ddf5f0