Squashed commit of the following: (#29)

commit 5575c69eb456ccf7c3cfa41c20a45c8c70ce7656
Merge: 679e5af0e 7650b9c6f
Author: Joel Dice <joel.dice@gmail.com>
Date:   Tue Aug 22 07:46:44 2017 -0600

    Merge pull request #541 from corda/class-resolver-crash

    Fix crash when resolving system classes.

commit 679e5af0ef5d73a467845513d51d0fa0f7fa46b0
Merge: 01bef8ed6 6535959bd
Author: Joel Dice <joel.dice@gmail.com>
Date:   Tue Aug 22 07:36:22 2017 -0600

    Merge pull request #542 from corda/remove-unused-getVMClass

    Refactor partially implemented getVMClass(Object) function.

commit 01bef8ed6f92e0b047a12a46f9286aca82c4fdb9
Merge: fabf4dd0c 2fb3b0d17
Author: Joel Dice <joel.dice@gmail.com>
Date:   Wed Aug 2 16:48:52 2017 -0600

    Merge pull request #544 from teras/master

    Update to latest active iOS platform

commit 2fb3b0d179228a370875df7711a6b58c492f4de4
Author: Panayotis Katsaloulis <panayotis@panayotis.com>
Date:   Wed Aug 2 21:14:26 2017 +0300

    Update to latest active iOS platform

commit 6535959bd8f85b9351c823c6c4a1d364905a8824
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Fri Jul 28 09:58:42 2017 +0100

    Remove unimplemented function Classes.getVMClass(Object).
    This function seems to have been migrated to Object already anyway,
    so refactor its one remaining use accordingly.

commit 7650b9c6fe21e02380a17620f192c9bbcec02092
Author: Chris Rankin <chris.rankin@r3.com>
Date:   Thu Jul 27 15:06:18 2017 +0100

    Fix crash when resolving system classes.
This commit is contained in:
Chris Rankin 2017-08-30 11:03:22 +01:00 committed by GitHub
parent e79da0ebae
commit 674050779e
5 changed files with 5 additions and 13 deletions

View File

@ -41,8 +41,6 @@ public class Classes {
public static native boolean isAssignableFrom(VMClass a, VMClass b);
public static native VMClass getVMClass(Object o);
public static native VMClass toVMClass(Class c);
public static native VMMethod toVMMethod(Method m);

View File

@ -564,7 +564,7 @@ public final class Class <T>
public static boolean isInstance(VMClass c, Object o) {
return o != null && Classes.isAssignableFrom
(c, Classes.getVMClass(o));
(c, o.getVMClass());
}
public boolean isInstance(Object o) {

View File

@ -28,10 +28,10 @@ public class Object {
protected void finalize() throws Throwable { }
public final Class<? extends Object> getClass() {
return avian.SystemClassLoader.getClass(getVMClass(this));
return avian.SystemClassLoader.getClass(getVMClass());
}
private static native avian.VMClass getVMClass(Object o);
native avian.VMClass getVMClass();
public native int hashCode();

View File

@ -807,7 +807,7 @@ ifeq ($(kernel),darwin)
platform-dir = $(developer-dir)/Platforms/$(target).platform
sdk-dir = $(platform-dir)/Developer/SDKs
ios-version := $(shell for x in 10.0 9.3 9.2 9.1 9.0 8.3 8.2 8.1 8.0; \
ios-version := $(shell for x in 10.3 10.2 10.1 10.0 9.3 9.2 9.1 9.0 8.3 8.2 8.1 8.0; \
do if test -d $(sdk-dir)/$(target)$$x.sdk \
-o -L $(sdk-dir)/$(target)$$x.sdk; \
then echo $$x; break; fi; done)

View File

@ -4883,13 +4883,7 @@ GcClass* resolveSystemClass(Thread* t,
ACQUIRE(t, t->m->classLock);
GcClass* class_ = cast<GcClass>(t,
hashMapFind(t,
cast<GcHashMap>(t, loader->map()),
spec,
byteArrayHash,
byteArrayEqual));
GcClass* class_ = findLoadedClass(t, loader, spec);
if (class_ == 0) {
PROTECT(t, class_);