This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: gcjh -vs- inner classes
- To: Gcc Patch List <gcc-patches at gcc dot gnu dot org>
- Subject: Patch: gcjh -vs- inner classes
- From: Tom Tromey <tromey at cygnus dot com>
- Date: 12 Oct 2000 13:05:11 -0600
- Reply-To: tromey at cygnus dot com
I'm checking this in. It fixes a gcjh bug reported by Bryce. He
tested this on his test case, and I checked it by rebuilding libgcj
from scratch.
2000-10-11 Tom Tromey <tromey@cygnus.com>
Fix for PR gcj/356:
* gjavah.c (add_class_decl): Don't special-case inner classes.
(add_namelet): Likewise.
Tom
Index: gjavah.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/gjavah.c,v
retrieving revision 1.60
diff -u -r1.60 gjavah.c
--- gjavah.c 2000/10/06 01:45:47 1.60
+++ gjavah.c 2000/10/12 18:55:49
@@ -1463,7 +1463,7 @@
return;
}
- for (p = name; p < name_limit && *p != '/' && *p != '$'; ++p)
+ for (p = name; p < name_limit && *p != '/'; ++p)
;
/* Search for this name beneath the PARENT node. */
@@ -1484,7 +1484,7 @@
n->name = xmalloc (p - name + 1);
strncpy (n->name, name, p - name);
n->name[p - name] = '\0';
- n->is_class = (p == name_limit || *p == '$');
+ n->is_class = (p == name_limit);
n->subnamelets = NULL;
n->next = parent->subnamelets;
parent->subnamelets = n;
@@ -1492,7 +1492,7 @@
/* We recurse if there is more text, and if the trailing piece does
not represent an inner class. */
- if (p < name_limit && *p != '$')
+ if (p < name_limit)
add_namelet (p + 1, name_limit, n);
}
@@ -1568,7 +1568,7 @@
for (i = 0; i < len; ++i)
{
- int start, saw_dollar;
+ int start;
/* If we see an array, then we include the array header. */
if (s[i] == '[')
@@ -1582,26 +1582,10 @@
if (s[i] != 'L')
continue;
- saw_dollar = 0;
for (start = ++i; i < len && s[i] != ';'; ++i)
- {
- if (! saw_dollar && s[i] == '$' && out)
- {
- saw_dollar = 1;
- /* If this class represents an inner class, then
- generate a `#include' for the outer class. However,
- don't generate the include if the outer class is the
- class we are processing. */
- if (i - start < tlen || strncmp (&s[start], tname, i - start))
- print_include (out, &s[start], i - start);
- break;
- }
- }
+ ;
- /* If we saw an inner class, then the generated #include will
- declare the class. So in this case we needn't bother. */
- if (! saw_dollar)
- add_namelet (&s[start], &s[i], &root);
+ add_namelet (&s[start], &s[i], &root);
}
}