jcf-parse.c (ggc_mark_jcf): New function.
* jcf-parse.c (ggc_mark_jcf): New function. (init_jcf_parse): Register current_jcf as ggc root. From-SVN: r39173
This commit is contained in:
parent
2c36c7fd96
commit
3432b91b65
@ -1,3 +1,8 @@
|
|||||||
|
2001-01-21 Per Bothner <per@bothner.com>
|
||||||
|
|
||||||
|
* jcf-parse.c (ggc_mark_jcf): New function.
|
||||||
|
(init_jcf_parse): Register current_jcf as ggc root.
|
||||||
|
|
||||||
2001-01-21 Per Bothner <per@bothner.com>
|
2001-01-21 Per Bothner <per@bothner.com>
|
||||||
|
|
||||||
* lang.c (put_decl_node): Print method's name.
|
* lang.c (put_decl_node): Print method's name.
|
||||||
|
@ -93,6 +93,29 @@ static int find_in_current_zip PARAMS ((const char *, struct JCF **));
|
|||||||
static void parse_class_file PARAMS ((void));
|
static void parse_class_file PARAMS ((void));
|
||||||
static void set_source_filename PARAMS ((JCF *, int));
|
static void set_source_filename PARAMS ((JCF *, int));
|
||||||
static int predefined_filename_p PARAMS ((tree));
|
static int predefined_filename_p PARAMS ((tree));
|
||||||
|
static void ggc_mark_jcf PARAMS ((void**));
|
||||||
|
|
||||||
|
/* Mark (for garbage collection) all the tree nodes that are
|
||||||
|
referenced from JCF's constant pool table. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
ggc_mark_jcf (elt)
|
||||||
|
void **elt;
|
||||||
|
{
|
||||||
|
JCF *jcf = *(JCF**) elt;
|
||||||
|
if (jcf != NULL)
|
||||||
|
{
|
||||||
|
CPool *cpool = &jcf->cpool;
|
||||||
|
int size = CPOOL_COUNT(cpool);
|
||||||
|
int index;
|
||||||
|
for (index = 1; index < size; index++)
|
||||||
|
{
|
||||||
|
int tag = JPOOL_TAG (jcf, index);
|
||||||
|
if ((tag & CONSTANT_ResolvedFlag) || tag == CONSTANT_Utf8)
|
||||||
|
ggc_mark_tree ((tree) cpool->data[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Handle "SourceFile" attribute. */
|
/* Handle "SourceFile" attribute. */
|
||||||
|
|
||||||
@ -1099,4 +1122,6 @@ init_jcf_parse ()
|
|||||||
ggc_add_tree_root (¤t_field, 1);
|
ggc_add_tree_root (¤t_field, 1);
|
||||||
ggc_add_tree_root (¤t_method, 1);
|
ggc_add_tree_root (¤t_method, 1);
|
||||||
ggc_add_tree_root (¤t_file_list, 1);
|
ggc_add_tree_root (¤t_file_list, 1);
|
||||||
|
|
||||||
|
ggc_add_root (¤t_jcf, 1, sizeof (JCF), ggc_mark_jcf);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user