mirror of
https://github.com/corda/corda.git
synced 2025-01-06 05:04:20 +00:00
2465459079
The two big pieces here are basic invokedynamic support and a working version of LambdaMetaFactory.metafactory. The latter works by dynamically building a synthetic class with three methods: a static factory method, a constructor for the factory method to call, and a method to satisfy the requested interface which defers to the specified MethodHandle. This work relies heavily on Avian's specific MethodType and MethodHandle implementations, which provide extra, non-standard features to make code generation easier. That means we'll probably need to use Avian's versions of java.lang.invoke.* even when building with the OpenJDK or Android class libraries.
31 lines
951 B
Java
31 lines
951 B
Java
/* Copyright (c) 2008-2015, Avian Contributors
|
|
|
|
Permission to use, copy, modify, and/or distribute this software
|
|
for any purpose with or without fee is hereby granted, provided
|
|
that the above copyright notice and this permission notice appear
|
|
in all copies.
|
|
|
|
There is NO WARRANTY for this software. See license.txt for
|
|
details. */
|
|
|
|
package avian;
|
|
|
|
public class ClassAddendum extends Addendum {
|
|
public Object[] interfaceTable;
|
|
public InnerClassReference[] innerClassTable;
|
|
/**
|
|
* If this value is negative, all the methods in VMClass.methodTable
|
|
* were declared in that class. Otherwise, only the first
|
|
* declaredMethodCount methods in that table were declared in that
|
|
* class, while the rest were declared in interfaces implemented or
|
|
* extended by that class.
|
|
*/
|
|
public int declaredMethodCount;
|
|
|
|
public byte[] enclosingClass;
|
|
|
|
public Pair enclosingMethod;
|
|
|
|
public VMMethod[] bootstrapMethodTable;
|
|
}
|