mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8225054: Compiler implementation for records
8225052: javax.lang.model support for records 8225053: Preview APIs support for records 8225055: Javadoc for records 8226314: com.sun.source support for records 8227113: Specification for java.lang.Record 8233526: JVM support for records Implement records in the compiler and the JVM, including serialization, reflection and APIs support Co-authored-by: Brian Goetz <brian.goetz@oracle.com> Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com> Co-authored-by: Harold Seigel <harold.seigel@oracle.com> Co-authored-by: Joe Darcy <joe.darcy@oracle.com> Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com> Co-authored-by: Chris Hegarty <chris.hegarty@oracle.com> Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com> Reviewed-by: mcimadamore, briangoetz, alanb, darcy, chegar, jrose, jlahoda, coleenp, dholmes, lfoltan, mchung, sadayapalam, hannesw, sspitsyn
This commit is contained in:
parent
0a375cfa2d
commit
827e5e3226
351 changed files with 24958 additions and 6395 deletions
|
@ -30,6 +30,8 @@
|
|||
#include "oops/oop.hpp"
|
||||
#include "runtime/os.hpp"
|
||||
|
||||
class RecordComponent;
|
||||
|
||||
// Interface for manipulating the basic Java classes.
|
||||
//
|
||||
// All dependencies on layout of actual Java classes should be kept here.
|
||||
|
@ -73,6 +75,7 @@
|
|||
f(java_lang_reflect_Method) \
|
||||
f(java_lang_reflect_Constructor) \
|
||||
f(java_lang_reflect_Field) \
|
||||
f(java_lang_reflect_RecordComponent) \
|
||||
f(java_nio_Buffer) \
|
||||
f(reflect_ConstantPool) \
|
||||
f(reflect_UnsafeStaticFieldAccessorImpl) \
|
||||
|
@ -1483,6 +1486,39 @@ class java_lang_LiveStackFrameInfo: AllStatic {
|
|||
friend class JavaClasses;
|
||||
};
|
||||
|
||||
// Interface to java.lang.reflect.RecordComponent objects
|
||||
|
||||
class java_lang_reflect_RecordComponent: AllStatic {
|
||||
private:
|
||||
static int clazz_offset;
|
||||
static int name_offset;
|
||||
static int type_offset;
|
||||
static int accessor_offset;
|
||||
static int signature_offset;
|
||||
static int annotations_offset;
|
||||
static int typeAnnotations_offset;
|
||||
|
||||
// Setters
|
||||
static void set_clazz(oop element, oop value);
|
||||
static void set_name(oop element, oop value);
|
||||
static void set_type(oop element, oop value);
|
||||
static void set_accessor(oop element, oop value);
|
||||
static void set_signature(oop element, oop value);
|
||||
static void set_annotations(oop element, oop value);
|
||||
static void set_typeAnnotations(oop element, oop value);
|
||||
|
||||
public:
|
||||
// Create an instance of RecordComponent
|
||||
static oop create(InstanceKlass* holder, RecordComponent* component, TRAPS);
|
||||
|
||||
static void compute_offsets();
|
||||
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Debugging
|
||||
friend class JavaClasses;
|
||||
};
|
||||
|
||||
|
||||
// Interface to java.lang.AssertionStatusDirectives objects
|
||||
|
||||
class java_lang_AssertionStatusDirectives: AllStatic {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue