> On Fri, May 14, 2004 at 07:37:31PM -0400, Jeff Johnston wrote: >> Index: jv-lang.c > >> + /* P now points at the `)' at the end of the argument list. Walk >> + back to the beginning. */ >> + p--; >> + depth = 1; >> + while (p > name && depth > 0) >> + { >> + if (*p == '<' || *p == '(') >> + depth--; >> + else if (*p == '>' || *p == ')') >> + depth++; >> + p--; >> + } >> + >> + if (p == name) >> + return NULL; >> + >> + while (p > name && *p != '.') >> + p--; > > You've left in a lot of hokery from the C++ support which I'm > reasonably confident Java does not need. I don't believe that Java > mangled names will ever have templates, or classes nested inside of > functions, or multiple argument lists - no depth at all. Also, I'd > appreciate it if you called it something other than > find_last_component; the C++ version shouldn't have such a generic name > either, IMO. > > Otherwise this looks fine. > > -- > Daniel Jacobowitz > > I have made the changes you recommended. The function now only looks for the opening parenthesis. I renamed it to "find_member_function_name" as well. Ok to commit? 2004-07-05 Jeff Johnston * language.h (struct_language_defn): Add new function pointer: la_class_name_from_physname. Also add new prototype for language_class_name_from_physname. * language.c (language_class_name_from_physname): New function. (unk_lang_class_name): Ditto. (unknown_language_defn, auto_language_defn): Change to add unk_lang_class_name function pointer for la_class_name_from_physname. (local_language_defn): Ditto. * dwarf2read.c (guess_structure_name): Change to call language_class_name_from_physname. (determine_class_name): Ditto. * cp-support.c (class_name_from_physname): Renamed. (cp_class_name_from_physname): New name of function. * cp-support.h: Ditto. * c-lang.c (c_language_defn): Change to add NULL for class_name_from_physname function pointer. (cplus_language_defn): Change to add cp_class_name_from_physname. * jv-lang.c (java_class_name_physname): New function. (find_member_function_name): New static routine. (java_language_defn): Add java_class_name_from_physname pointer. * ada-lang.c (ada_language_defn): Change to add NULL for class_name_from_physname function pointer. * f-lang.c (f_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * p-lang.c (pascal_language_defn): Ditto. * scm-lang.c (scm_language_defn): Ditto.