Commit Graph

1028 Commits

Author SHA1 Message Date
d1d97351b9 Reflection improved 2014-10-07 16:50:02 +04:00
270bbc66f9 Added getGenericInterfaces() and fixed SignatureParser to work for everything except TypeVariable-s 2014-10-04 22:17:49 +04:00
67cafb118c Added isAnonymousClass(), isLocalClass(), isMemberClass() functions to Class class 2014-10-02 23:51:25 +04:00
7f4c0b3118 fix SSL stack and Android JAR resource loading 2014-08-22 07:20:19 -06:00
b96cc3c575 update to more recent version of Android class library
Lots has changed since we forked Android's libcore, so merging the
latest upstream code has required extensive changes to the
Avian/Android port.

One big change is that we now use Avian's versions of
java.lang.Object, java.lang.Class, java.lang.ClassLoader, some
java.lang.reflect.* classes, etc. instead of the Android versions.
The main reason is that the Android versions have become very
Dex/Dalvik-specific, and since Avian is based on Java class files, not
dex archives, that code doesn't make sense here.  This has the side
benefit that we can share more native code with classpath-avian.cpp
and reduce the amount of Java/C++ code duplication.
2014-08-21 13:42:49 -06:00
8b83de8985 add avian.Machine.tryNative
This function allows you to call native code such that any
SIGSEGV/SIGBUS/SIGFPE/EXC_ACCESS_VIOLATION/etc. raised by that code is
transformed into a Java exception and thrown by tryNative.  Note that
this effectively results in a longjmp out of whatever function raised
the exception, so any C++ destructors or other cleanup code will not
be run.
2014-08-19 14:03:46 -06:00
5b618982b5 explicitly override UNUSED definition
Recent versions of jni.h such as the one provided by Debian Jessie's
OpenJDK define UNUSED in a way that conflicts with our definition and
usage, so we need to explicitly undefine it before redefining it to
avoid compiler noise.
2014-08-17 15:34:44 -06:00
46f7a45f12 add hashCode and equals methods to java/util/Map
Granted, this is weird - but this is what openjdk does.  Therefore,
some code that is compiled for openjdk (say, protobufs) will treat
calls to Map.hashCode as interface calls instead of virtual calls, as
they would have previously been under avian's classpath.

Also note that this error caused avian to abort in findInterfaceMethod
rather than throw an AbstractMethodError or somesuch - but that's a
problem for another day.
2014-08-15 10:44:22 -06:00
60ea4b2cc2 Merge pull request #317 from joshuawarner32/cmake-vs
Get cmake build working with visual studio 2013
2014-07-31 08:16:48 -06:00
d47fcdc349 fix ubuntu precise mingw math.h problems 2014-07-30 14:15:22 -06:00
c52a9bdf0d Fixing Avian classpath on Windows 2014-07-29 13:51:33 +04:00
2a43e68c16 fix all the bugs
So there I was, planning to just fix one little bug: Thread.holdsLock
and Thread.yield were missing for the Android class library.  Easy
enough, right?  So, I added a test, got it passing, and figured I'd go
ahead and run ci.sh with all three class libraries.  Big mistake.

Here's the stuff I found:

 * minor inconsistency in README.md about OpenSSL version

 * untested, broken Class.getEnclosingMethod (reported by Josh)

 * JNI test failed for tails=true Android build

 * Runtime.nativeExit missing for Android build

 * obsolete assertion in CallEvent broke tails=true Android build

 * obsolete superclass field offset padding broke bootimage=true Android build

 * runtime annotation parsing broke bootimage=true Android build
   (because we couldn't modify Addendum.annotationTable for classes in
   the heap image)

 * ci.sh tried building with both android=... and openjdk=..., which
   the makefile rightfully balked at

Sorry this is all in a single commit; I didn't expect so many
unrelated issues, and I'm too lazy to break them apart.
2014-07-12 16:57:24 -06:00
836cc41320 bulk, global reformat 2014-07-11 13:25:22 -06:00
7642b94308 reformat changes since master 2014-07-11 13:25:22 -06:00
b0490b8233 finish using setters 2014-07-11 13:25:22 -06:00
a1583f1ecc touch up type safety in types.def 2014-07-11 13:25:20 -06:00
1e201e54fc staticly type GcContinuation* 2014-07-11 13:25:20 -06:00
0ec87c6aa1 statically type Addendum.pool better 2014-07-11 13:25:19 -06:00
9f5912c2b6 add stronger typing to method.code 2014-07-11 13:25:19 -06:00
194e3b2701 add VMClass changes 2014-07-11 13:25:18 -06:00
5adb558355 add Code to classpath 2014-07-11 09:32:57 -06:00
5d3c612d0e fix JNIEnv::FindClass calls from JNI_OnLoad for all supported class libraries
This also fixes the some Android build rot and updates the version of
OpenSSL used.
2014-07-01 10:53:26 -06:00
254e3f938d fix unused declaration/definition warnings from GCC 4.9 2014-06-30 09:54:01 -06:00
809b3493e4 More defensive if getCause() changes 2014-05-30 09:46:38 -06:00
8c15c14260 Improved Throwable so that if getCause is overriden the printStackTrace will get the cause 2014-05-30 09:27:37 -06:00
c0adc9a81e don't use GetPrimitiveArrayCritical when throwing SocketExceptions
690ba9c fixed this for throwIOException, but we didn't notice that
throwSocketException had the same problem.
2014-05-23 10:35:44 -06:00
7a768f2c69 fix log level inheritance
A Logger which has not had a level set explicitly should inherit its
effective level from its parent, not just default to INFO.
2014-05-20 14:26:56 -06:00
0b0071dd7f Fix package for LegacyObjectInputStream (ammending commit to try to force a travis build) 2014-05-20 12:58:27 -06:00
a7b548f347 Change ByteArrayOutputStream's toString function to match openJDK's expectation 2014-05-14 17:09:15 -06:00
c35435e450 fix portability problem in Strings test
There was a test in Strings.java that assumed the default character
encoding was UTF-8, which is an invalid assumption on some platforms
(e.g. Windows).  This modifies the test to specify the encoding
explicitly.
2014-05-09 16:38:33 -06:00
2f7356863b Merge pull request #249 from joshuawarner32/remove-powerpc
remove powerpc support
2014-05-02 07:13:12 -06:00
95cffe90b2 Define user.home property on posix 2014-05-01 11:26:27 -06:00
41adb74eb1 remove powerpc support 2014-04-29 13:26:40 -06:00
0545c07d33 Added SortedMap interface
I also changed TreeMap to implement the "SortedMap" interface, like it should.  Unfortanetly not all the code to implement the interface was there.  Where it was simple I implemented the additional functions, in the case of headMap, tailMap, subMap we are currently just throwing an UnsupportedOperationException.
2014-04-29 09:52:27 -06:00
172ef9a7e6 Merge pull request #246 from joshuawarner32/master
Stop using *Critical functions in throwIOException
2014-04-24 19:40:10 -06:00
1b17ca146b Merge pull request #242 from dicej/copyright
update copyright years
2014-04-24 18:45:18 -06:00
690ba9cdc7 Stop using *Critical functions in throwIOException
This was a bug, wherein upon throwing an exception, we would try to
allocate memory for the message - all while holding a critical
reference to the jbyteArray representing the exception string.  This
caused an expect to fail in allocate3.
2014-04-24 15:23:05 -06:00
a41efb76c5 avoid NPE in URL.set when file is null 2014-04-23 15:51:57 -06:00
9b7d0d1624 update copyright years 2014-04-23 15:33:41 -06:00
4c3e0f3421 Merge pull request #238 from pcarrier/PsPN
CP: Properties.stringPropertyNames()
2014-04-20 19:24:10 -06:00
1a8d557c72 Merge pull request #237 from pcarrier/sb
CP: StringBuilder.append(char[])
2014-04-20 08:04:47 -06:00
91282a040f CP: StringBuilder.append(char[]) 2014-04-20 04:24:52 -07:00
a36176baca CP: Properties.stringPropertyNames() 2014-04-20 04:24:14 -07:00
b74f9e32e9 fix NPE in Field.getAnnotations 2014-04-17 13:16:21 -06:00
7192b0081d Small change to make these two structures implement RandomAccess (as they should) 2014-04-16 14:33:32 -06:00
d00debd250 fix Java 6 build
Java 6's javac is not as smart as Java 7's when it comes to calling
overloaded methods from an inner class, so we have to be more
explicit.
2014-04-07 14:05:54 -06:00
8f4c0e78ce clean up System.getProperties and related methods
The behavior of Avian's versions of these methods was egregiously
non-standard, and there were problems with the Android implementations
as well.
2014-04-04 13:43:59 -06:00
573367e7a1 Merge pull request #212 from dicej/net
various refinements to network implementation
2014-04-02 19:41:21 -06:00
a7e86e6cd4 implement Unsafe.{get|put}*Volatile 2014-03-31 17:31:28 -06:00
6e7149061c various refinements to network implementation
The main idea is to make DatagramChannel and *SocketChannel behave in
a way that more closely matches the standard, e.g. allow binding
sockets to addresses without necessarily listening on those addresses
and accept null addresses where appropriate.  It also avoids multiple
redundant DNS lookups.

This commit also implements CharBuffer and BindException, and adds the
Readable interface.
2014-03-31 15:22:14 -06:00