X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fdebug-helpers.c;h=baf79f6be9709502aa442df5fe76f9570e73719a;hb=58e8a9f85176c9607e605b888ef45db01a0f6997;hp=fb5aede58fc0c65506281e7504224df2d76f5fd5;hpb=82041260ed737b80e1ba8adef3f9a031c069303a;p=mono.git diff --git a/mono/metadata/debug-helpers.c b/mono/metadata/debug-helpers.c index fb5aede58fc..baf79f6be97 100644 --- a/mono/metadata/debug-helpers.c +++ b/mono/metadata/debug-helpers.c @@ -5,6 +5,7 @@ * Mono Project (http://www.mono-project.com) * * Copyright (C) 2005-2008 Novell, Inc. (http://www.novell.com) + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #include @@ -333,6 +334,7 @@ mono_method_desc_new (const char *name, gboolean include_namespace) MonoMethodDesc *result; char *class_name, *class_nspace, *method_name, *use_args, *end; int use_namespace; + int generic_delim_stack; class_nspace = g_strdup (name); use_args = strchr (class_nspace, '('); @@ -379,8 +381,14 @@ mono_method_desc_new (const char *name, gboolean include_namespace) end = use_args; if (*end) result->num_args = 1; + generic_delim_stack = 0; while (*end) { - if (*end == ',') + if (*end == '<') + generic_delim_stack++; + else if (*end == '>') + generic_delim_stack--; + + if (*end == ',' && generic_delim_stack == 0) result->num_args++; ++end; }