Add java.lang.Record from upstream

Test: m

Change-Id: Ifd42ac0e77b06d3d2a3cd9b08e4b735c4402a706
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h
index a515188..4833110 100644
--- a/runtime/mirror/class.h
+++ b/runtime/mirror/class.h
@@ -566,7 +566,7 @@
   // The size of java.lang.Class.class.
   static uint32_t ClassClassSize(PointerSize pointer_size) {
     // The number of vtable entries in java.lang.Class.
-    uint32_t vtable_entries = Object::kVTableLength + 73;
+    uint32_t vtable_entries = Object::kVTableLength + 78;
     return ComputeClassSize(true, vtable_entries, 0, 0, 4, 1, 0, pointer_size);
   }
 
diff --git a/test/1980-obsolete-object-cleared/expected-stdout.txt b/test/1980-obsolete-object-cleared/expected-stdout.txt
index 43251f1..4208596 100644
--- a/test/1980-obsolete-object-cleared/expected-stdout.txt
+++ b/test/1980-obsolete-object-cleared/expected-stdout.txt
@@ -17,6 +17,10 @@
 Using obsolete class object!
 
 
+Calling public java.lang.Class java.lang.Class.arrayType() with params: []
+public java.lang.Class java.lang.Class.arrayType() on (obsolete)class Main$Transform with [] = class [LMain$Transform;
+Calling public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.arrayType() with params: []
+public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.arrayType() on (obsolete)class Main$Transform with [] = class [LMain$Transform;
 Calling public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) with params: [[null, class java.lang.Object, (obsolete)class Main$Transform, class Main$Transform, long, class java.lang.Class]]
 public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) with [null] throws java.lang.reflect.InvocationTargetException: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isAssignableFrom(java.lang.Class)' on a null object reference
 public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) on (obsolete)class Main$Transform with [class java.lang.Object] = (obsolete)class Main$Transform
@@ -29,6 +33,12 @@
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [foo] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.String to Main$Transform
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [NOT_USED_STRING] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.String to Main$Transform
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [class Main$Transform] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.Class to Main$Transform
+Calling public java.lang.Class java.lang.Class.componentType() with params: []
+public java.lang.Class java.lang.Class.componentType() on (obsolete)class Main$Transform with [] = null
+Calling public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.componentType() with params: []
+public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.componentType() on (obsolete)class Main$Transform with [] = null
+Calling public java.lang.String java.lang.Class.descriptorString() with params: []
+public java.lang.String java.lang.Class.descriptorString() on (obsolete)class Main$Transform with [] = LMain$Transform;
 Calling public boolean java.lang.Class.desiredAssertionStatus() with params: []
 public boolean java.lang.Class.desiredAssertionStatus() on (obsolete)class Main$Transform with [] = false
 Calling public int java.lang.Class.getAccessFlags() with params: []
@@ -252,6 +262,10 @@
 Using non-obsolete class object!
 
 
+Calling public java.lang.Class java.lang.Class.arrayType() with params: []
+public java.lang.Class java.lang.Class.arrayType() on class Main$Transform with [] = class [LMain$Transform;
+Calling public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.arrayType() with params: []
+public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.arrayType() on class Main$Transform with [] = class [LMain$Transform;
 Calling public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) with params: [[null, class java.lang.Object, (obsolete)class Main$Transform, class Main$Transform, long, class java.lang.Class]]
 public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) with [null] throws java.lang.reflect.InvocationTargetException: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isAssignableFrom(java.lang.Class)' on a null object reference
 public java.lang.Class java.lang.Class.asSubclass(java.lang.Class) on class Main$Transform with [class java.lang.Object] = class Main$Transform
@@ -264,6 +278,12 @@
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [foo] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.String to Main$Transform
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [NOT_USED_STRING] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.String to Main$Transform
 public java.lang.Object java.lang.Class.cast(java.lang.Object) with [class Main$Transform] throws java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: Cannot cast java.lang.Class to Main$Transform
+Calling public java.lang.Class java.lang.Class.componentType() with params: []
+public java.lang.Class java.lang.Class.componentType() on class Main$Transform with [] = null
+Calling public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.componentType() with params: []
+public java.lang.invoke.TypeDescriptor$OfField java.lang.Class.componentType() on class Main$Transform with [] = null
+Calling public java.lang.String java.lang.Class.descriptorString() with params: []
+public java.lang.String java.lang.Class.descriptorString() on class Main$Transform with [] = LMain$Transform;
 Calling public boolean java.lang.Class.desiredAssertionStatus() with params: []
 public boolean java.lang.Class.desiredAssertionStatus() on class Main$Transform with [] = false
 Calling public int java.lang.Class.getAccessFlags() with params: []