PATCH to remove `final' from Java classes

Tom Tromey tromey@cygnus.com
Thu Oct 22 17:58:00 GMT 1998


I'm committing the appended patch.  It removes the `final' field from
Java class structures.  This field is not needed, since we can easily
(and efficiently) determine whether finalization is required at
runtime.

1998-10-22  Tom Tromey  <tromey@cygnus.com>

	* java-tree.h (finalize_identifier_node): Don't declare.
	* class.c (make_class_data): Don't push "final" field.
	* decl.c (init_decl_processing): Don't push "final" field.
	(finalize_identifier_node): Removed.
	(init_decl_processing): Don't set finalize_identifier_node.

Tom

Index: class.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/java/class.c,v
retrieving revision 1.55.2.2
diff -u -r1.55.2.2 class.c
--- class.c	1998/10/21 15:04:04	1.55.2.2
+++ class.c	1998/10/22 22:07:52
@@ -1110,11 +1110,6 @@
 		    flag_assume_compiled ? integer_four_node
 		    : integer_two_node);
 
-  method = lookup_java_method (type,
-			       finalize_identifier_node, void_signature_node);
-  PUSH_FIELD_VALUE (cons, "final",
-		    method == NULL ? integer_zero_node : integer_one_node);
-
   PUSH_FIELD_VALUE (cons, "thread", null_pointer_node);
 
   FINISH_RECORD_CONSTRUCTOR (cons);
Index: decl.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/java/decl.c,v
retrieving revision 1.62.2.1
diff -u -r1.62.2.1 decl.c
--- decl.c	1998/10/20 18:17:55	1.62.2.1
+++ decl.c	1998/10/22 22:08:06
@@ -325,7 +325,6 @@
 tree TYPE_identifier_node;
 tree init_identifier_node;
 tree clinit_identifier_node;
-tree finalize_identifier_node;
 tree void_signature_node;
 tree length_identifier_node;
 tree this_identifier_node;
@@ -534,7 +533,6 @@
   TYPE_identifier_node = get_identifier ("TYPE");
   init_identifier_node = get_identifier ("<init>");
   clinit_identifier_node = get_identifier ("<clinit>");
-  finalize_identifier_node = get_identifier ("finalize");
   void_signature_node = get_identifier ("()V");
   length_identifier_node = get_identifier ("length");
   this_identifier_node = get_identifier ("this");
@@ -603,7 +601,6 @@
   PUSH_FIELD (class_type_node, field, "loader", ptr_type_node);
   PUSH_FIELD (class_type_node, field, "interface_len", short_type_node);
   PUSH_FIELD (class_type_node, field, "state", byte_type_node);
-  PUSH_FIELD (class_type_node, field, "final", byte_type_node);
   PUSH_FIELD (class_type_node, field, "thread", ptr_type_node);
   for (t = TYPE_FIELDS (class_type_node);  t != NULL_TREE;  t = TREE_CHAIN (t))
     FIELD_PRIVATE (t) = 1;
Index: java-tree.h
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/java/java-tree.h,v
retrieving revision 1.58.2.3
diff -u -r1.58.2.3 java-tree.h
--- java-tree.h	1998/10/22 19:51:55	1.58.2.3
+++ java-tree.h	1998/10/22 22:08:15
@@ -196,7 +196,6 @@
 extern tree init_identifier_node;      /* "<init>" */
 extern tree clinit_identifier_node;      /* "<clinit>" */
 extern tree void_signature_node;       /* "()V" */
-extern tree finalize_identifier_node;  /* "finalize" */
 extern tree length_identifier_node;  /* "length" */
 extern tree this_identifier_node;  /* "this" */
 extern tree super_identifier_node;  /* "super" */



More information about the Gcc-patches mailing list