classes.pl (scan): Print inner classes properly.

* scripts/classes.pl (scan): Print inner classes properly.
	* gcj/javaprims.h: Updated class list.

From-SVN: r35151
This commit is contained in:
Tom Tromey 2000-07-20 19:34:29 +00:00 committed by Tom Tromey
parent 5e5c1371d3
commit 7f8a07dbea
3 changed files with 47 additions and 11 deletions

View File

@ -1,5 +1,8 @@
2000-07-20 Tom Tromey <tromey@cygnus.com>
* 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.

View File

@ -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;

View File

@ -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 (<FILE>)
{
# 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);
}