Merge pull request #3029 from lambdageek/dev/simplify-monoerror-threads
[mono.git] / mono / metadata / debug-helpers.c
index fb5aede58fc0c65506281e7504224df2d76f5fd5..f8cbb0744a2d5c19af1ba8eb8cb70219e71b372c 100644 (file)
@@ -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 <string.h>
@@ -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;
                }
@@ -436,10 +444,6 @@ mono_method_desc_match (MonoMethodDesc *desc, MonoMethod *method)
        gboolean name_match;
 
        name_match = strcmp (desc->name, method->name) == 0;
-#ifndef _EGLIB_MAJOR
-       if (!name_match && desc->name_glob)
-               name_match = g_pattern_match_simple (desc->name, method->name);
-#endif
        if (!name_match)
                return FALSE;
        if (!desc->args)