Commit Graph

56 Commits

Author SHA1 Message Date
1db67e463f Add Class#isEnum and improve error handling in Enum.valueOf 2013-02-03 16:03:15 +01:00
0addd8c814 update copyright years 2012-05-11 17:43:27 -06:00
794a45cb79 fix various ObjectOutputStream/ObjectInputStream bugs 2011-07-01 08:43:43 -06:00
a5742f5985 update copyright years 2010-12-05 20:21:09 -07:00
459f4d5194 fix openjdk-src bootimage build
The main change here is to use a lazily-populated vector to associate
runtime data with classes instead of referencing them directly from
the class which requires updating immutable references in the heap
image.  The other changes employ other strategies to avoid trying to
update immutable references.
2010-11-26 12:41:31 -07:00
c1c9d2111b remove GNU Classpath and Apache Harmony compatibility code
Rather than try to support mixing Avian's core classes with those of
an external class library -- which necessitates adding a lot of stub
methods which throw UnsupportedOperationExceptions, among other
comprimises -- we're looking to support such external class libraries
in their unmodified forms.  The latter strategy has already proven
successful with OpenJDK's class library.  Thus, this commit removes
the stub methods, etc., which not only cleans up the code but avoids
misleading application developers as to what classes and methods
Avian's built-in class library supports.
2010-09-27 15:58:02 -06:00
d819a75f36 more work towards OpenJDK classpath support
The biggest change in this commit is to split the system classloader
into two: one for boot classes (e.g. java.lang.*) and another for
application classes.  This is necessary to make OpenJDK's security
checks happy.

The rest of the changes include bugfixes and additional JVM method
implementations in classpath-openjdk.cpp.
2010-09-14 10:49:41 -06:00
cddea7187d preliminary support for using OpenJDK's class library
Whereas the GNU Classpath port used the strategy of patching Classpath
with core classes from Avian so as to minimize changes to the VM, this
port uses the opposite strategy: abstract and isolate
classpath-specific features in the VM similar to how we abstract away
platform-specific features in system.h.  This allows us to use an
unmodified copy of OpenJDK's class library, including its core classes
and augmented by a few VM-specific classes in the "avian" package.
2010-09-10 15:05:29 -06:00
17c1a552d5 break each Class, Field, and Method into separate classes
In order to facilitate making the VM compatible with multiple class
libraries, it's useful to separate the VM-specific representation of
these classes from the library implementations.  This commit
introduces VMClass, VMField, and VMMethod for that purpose.
2010-09-01 10:13:52 -06:00
6118792ffd update copyright years 2009-12-02 19:08:29 -07:00
953cb69e5e move proxy and annotation code from C++ to Java
This allows code shrinkers to remove it if it's not used by the application.
2009-09-19 16:21:15 -06:00
7aa906d97b support runtime-visible annotations and java.lang.reflect.Proxy 2009-09-18 18:01:54 -06:00
987330fed5 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2009-08-28 16:18:36 -06:00
cd41751912 ensure primitive names are zero-terminated in Class.getName 2009-08-28 16:17:23 -06:00
73dc058c14 implement StackTraceElement.getFileName properly 2009-08-27 16:28:44 -06:00
c4edabdc02 implement ClassLoader.resolveClass and ensure class is linked in e.g. Class.getMethods; minor bugfixes 2009-08-18 14:26:28 -06:00
fb37f48237 add various methods to Class and fix getComponentType for primitive arrays 2009-08-13 08:57:06 -06:00
0544ab381f fix Class.isArray for case this == Class.class 2009-08-12 19:40:52 -06:00
97ea23e3bb optionally specify classloader to Class.forCanonicalName 2009-08-10 07:46:05 -06:00
1a2deff97d Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2009-08-09 14:43:53 -06:00
6d27274aea update Class.PrimitiveFlag value to reflect change in machine.h; make Class.getName work for primitive types 2009-08-05 15:57:51 +00:00
7050448ec5 implement Class.{get|set}Signers 2009-08-04 18:31:14 -06:00
54ceb80116 implement stub versions of java.security classes 2009-08-03 08:56:19 -06:00
27d863790c Merge branch 'win64' into gnu
Conflicts:

	makefile
	src/compile-x86.S
	src/x86.S
	src/x86.cpp
2009-07-25 20:48:36 -06:00
a201d28e5c handle null loader parameter properly in Class.forName 2009-06-06 20:29:15 -06:00
bcad89dc17 handle null parameter types in various class methods 2009-06-05 14:28:55 -06:00
0615b8a09f add classes and methods needed for GNU Classpath compatibility
Most of these methods are stubs which throw
UnsupportedOperationExceptions for now.
2009-06-02 17:14:38 -06:00
c80eb51c17 Merge branch 'master' into powerpc
Conflicts:

	makefile
	src/assembler.h
	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
	src/finder.cpp
2008-11-11 08:21:48 -07:00
bba4f75c2f Tweaked code indentation and formatting to match existing style 2008-07-03 10:49:08 -06:00
e3fd0d9c7d add a few classes and methods to the classpath
Add java.lang.CharSequence, java.util.AbstractSet,
java.util.AbstractCollection, Collections.unmodifiableSet,
 System.getProperty(String,String), etc.
2008-07-03 09:16:32 -06:00
e9eacd900d add Class.isInterface 2008-04-01 16:48:58 -06:00
2edaa82801 prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
6fe0c4636f various bugfixes and tweaks in reflection 2007-11-20 13:40:07 -07:00
80f23a5040 implement Class.getEnumConstants 2007-11-17 11:39:29 -07:00
e820b6a8a4 sketch of singleton support 2007-11-02 15:08:14 -06:00
bb520e4ef9 bugfixes 2007-09-13 21:59:39 -06:00
7cb3a30a91 sketch of Runtime.exec() and Calendar; misc bugfixes 2007-09-12 18:21:37 -06:00
cb03240c64 quick sketches of various SWT 3.3 dependencies 2007-09-11 19:13:05 -06:00
a4b4f36c5b various classpath updates to help SWT build 2007-08-30 17:31:32 -06:00
e2f3e80bdf heap o' bugfixes 2007-08-19 20:57:32 -06:00
aa5e751e69 clean up Array.get(), Array.set(), and Method.invoke() implementations 2007-08-18 11:53:30 -06:00
d169e4eadf clean up Field.get() and Field.set() implementations 2007-08-18 11:15:03 -06:00
c20219df19 flesh out serialization/deserialization code and fix build 2007-08-12 18:50:25 -06:00
1997ea6b8c acquire class lock before running static initializer; wrap exceptions thrown from static initializers in ExceptionInInitializerError instances 2007-08-01 17:48:36 -06:00
38d4ee6e07 flesh out ClassLoader, etc. 2007-07-30 17:19:05 -06:00
a2bd7d0668 GC stress fixes and other bugfixes; classpath progress 2007-07-29 17:32:23 -06:00
abd9c2bc8d fix primitive class resolution to avoid mistaking normal classes with names like 'B' for primitive classes 2007-07-28 10:55:24 -06:00
41bee5829e misc. bugfixes and tweaks 2007-07-28 10:10:13 -06:00
363801af1c classpath progress 2007-07-27 17:56:19 -06:00
c9f9b039e6 classpath progress 2007-07-26 20:39:53 -06:00