From 7f8a07dbea5841742f43474131f9ba2832de0f5d Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 20 Jul 2000 19:34:29 +0000 Subject: [PATCH] classes.pl (scan): Print inner classes properly. * scripts/classes.pl (scan): Print inner classes properly. * gcj/javaprims.h: Updated class list. From-SVN: r35151 --- libjava/ChangeLog | 3 +++ libjava/gcj/javaprims.h | 34 ++++++++++++++++++++++++++-------- libjava/scripts/classes.pl | 21 ++++++++++++++++++--- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index fdbefa758f1..6f2a51df428 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,8 @@ 2000-07-20 Tom Tromey + * scripts/classes.pl (scan): Print inner classes properly. + * gcj/javaprims.h: Updated class list. + * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only initialize String fields for interpreted classes. Fixes bug reported by Hans Boehm. diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 9ef52dc5f1c..059292269ef 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -39,6 +39,7 @@ extern "Java" { namespace io { + class BlockDataException; class BufferedInputStream; class BufferedOutputStream; class BufferedReader; @@ -53,6 +54,7 @@ extern "Java" class DataOutput; class DataOutputStream; class EOFException; + class Externalizable; class File; class FileDescriptor; class FileInputStream; @@ -68,11 +70,13 @@ extern "Java" class IOException; class InputStream; class InputStreamReader; + class InterfaceComparator; class InterruptedIOException; class InvalidClassException; class InvalidObjectException; class LineNumberInputStream; class LineNumberReader; + class MemberComparator; class NotActiveException; class NotSerializableException; class ObjectInput; @@ -99,10 +103,11 @@ extern "Java" class PushbackReader; class RandomAccessFile; class Reader; + class Replaceable; + class Resolvable; class SequenceInputStream; class Serializable; class SerializablePermission; - class SimpleDigestStream; class StreamCorruptedException; class StreamTokenizer; class StringBufferInputStream; @@ -111,8 +116,10 @@ extern "Java" class SyncFailedException; class UTFDataFormatException; class UnsupportedEncodingException; + class ValidatorAndPriority; + class WriteAbortedException; class Writer; - } + }; namespace lang { @@ -122,6 +129,7 @@ extern "Java" class ArrayStoreException; class Boolean; class Byte; + class CPlusPlusDemangler; class Character; class Class; class ClassCastException; @@ -198,13 +206,20 @@ extern "Java" class Member; class Method; class Modifier; - } - } + }; + }; namespace util { + class AbstractCollection; + class AbstractList; + class AbstractList$SubList; + class Arrays; + class Arrays$ListImpl; class BitSet; class Calendar; + class Collection; + class Comparator; class ConcurrentModificationException; class Date; class Dictionary; @@ -216,6 +231,9 @@ extern "Java" class Hashtable; class HashtableEntry; class HashtableEnumeration; + class Iterator; + class List; + class ListIterator; class ListResourceBundle; class Locale; class MissingResourceException; @@ -238,7 +256,7 @@ extern "Java" class JarEntry; class JarFile; class JarInputStream; - } + }; namespace zip { @@ -261,9 +279,9 @@ extern "Java" class ZipFile; class ZipInputStream; class ZipOutputStream; - } - } - } + }; + }; + }; }; typedef struct java::lang::Object* jobject; diff --git a/libjava/scripts/classes.pl b/libjava/scripts/classes.pl index e9f17c774ea..9523823a313 100644 --- a/libjava/scripts/classes.pl +++ b/libjava/scripts/classes.pl @@ -1,7 +1,7 @@ # classes.pl - A perl program to generate most of the contents of # javaprims.h automatically. -# Copyright (C) 1998, 1999 Red Hat, Inc. +# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. # # This file is part of libjava. # @@ -65,14 +65,29 @@ sub scan next unless $name =~ /\.java$/; open (FILE, "< $dir/$name"); + local ($outer, $classname); while () { # NOTE: we don't skip `/*' comments. s,//.*$,,; # For now assume that class names start with upper # case letter. - next unless /(class|interface) ([A-Z][A-Za-z0-9]+)/; - $classes{$2} = 1; + next unless /\b(class|interface) ([A-Z][A-Za-z0-9]+)/; + $classname = $2; + + # We assume the code is properly indented, so that we + # can print inner classes properly. + if (/^\s/) + { + die "no outer class for $classname in $dir/$name" + unless $outer; + $classes{$outer . "\$" . $classname} = 1; + } + else + { + $classes{$classname} = 1; + $outer = $classname; + } } close (FILE); }