summaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@redhat.com>2001-07-05 15:33:44 -0700
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2001-07-05 15:33:44 -0700
commit51e23701494811dd20ed2cf1d6e4c5299d5d24d4 (patch)
treec27ae8ff81e650632f11ca9a8fc6aa5dade53668 /gcc/java/jcf-parse.c
parent43a727554dae9550dbd823af097964fef4aaa265 (diff)
downloadgcc-51e23701494811dd20ed2cf1d6e4c5299d5d24d4.tar.gz
[multiple changes]
2001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com> * parse.y (resolve_expression_name): Improved error message for inner class cases. Fixes PR java/1958 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com> * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF. * jcf.h (typedef struct JCF): New bitfield `finished.' (JCF_FINISH): Set `finished.' (JCF_ZERO): Reset `finished.' Fixes PR java/2633 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com> * parse.y (class_body_declaration:): Don't install empty instance initializers. Fixes PR java/1314 (http://gcc.gnu.org/ml/gcc-patches/2001-07/msg00321.html ) From-SVN: r43793
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r--gcc/java/jcf-parse.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index b4d5ba03aa7..d925205fe19 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -101,14 +101,15 @@ static void jcf_parse PARAMS ((struct JCF*));
static void load_inner_classes PARAMS ((tree));
/* Mark (for garbage collection) all the tree nodes that are
- referenced from JCF's constant pool table. */
+ referenced from JCF's constant pool table. Do that only if the JCF
+ hasn't been marked finished. */
static void
ggc_mark_jcf (elt)
void **elt;
{
JCF *jcf = *(JCF**) elt;
- if (jcf != NULL)
+ if (jcf != NULL && !jcf->finished)
{
CPool *cpool = &jcf->cpool;
int size = CPOOL_COUNT(cpool);