Avoid more array wrapping as list

PiperOrigin-RevId: 808792922
diff --git a/java/core/src/main/java/com/google/protobuf/Descriptors.java b/java/core/src/main/java/com/google/protobuf/Descriptors.java
index d6743b1..bf9f16c 100644
--- a/java/core/src/main/java/com/google/protobuf/Descriptors.java
+++ b/java/core/src/main/java/com/google/protobuf/Descriptors.java
@@ -2236,7 +2236,7 @@
             case ENUM:
               // We guarantee elsewhere that an enum type always has at least
               // one possible value.
-              defaultValue = getEnumType().getValues().get(0);
+              defaultValue = getEnumType().getValue(0);
               break;
             case MESSAGE:
               defaultValue = null;
@@ -2380,6 +2380,14 @@
       return Collections.unmodifiableList(Arrays.asList(values));
     }
 
+    public int getValueCount() {
+      return values.length;
+    }
+
+    public EnumValueDescriptor getValue(int index) {
+      return values[index];
+    }
+
     /** Determines if the given field number is reserved. */
     public boolean isReservedNumber(final int number) {
       for (final EnumDescriptorProto.EnumReservedRange range : proto.getReservedRangeList()) {
diff --git a/src/google/protobuf/compiler/java/internal_helpers.cc b/src/google/protobuf/compiler/java/internal_helpers.cc
index b026acd..fd10a2d 100644
--- a/src/google/protobuf/compiler/java/internal_helpers.cc
+++ b/src/google/protobuf/compiler/java/internal_helpers.cc
@@ -306,7 +306,7 @@
                   "  }\n");
             }
             printer->Print(
-                "  return getDescriptor().getValues().get(index());\n"
+                "  return getDescriptor().getValue(index());\n"
                 "}\n"
                 "public final com.google.protobuf.Descriptors.EnumDescriptor\n"
                 "    getDescriptorForType() {\n"
@@ -328,7 +328,7 @@
               // immutable outer class).
               printer->Print(
                   "  return "
-                  "$file$.getDescriptor().getEnumTypes().get($index$);\n",
+                  "$file$.getDescriptor().getEnumType($index$);\n",
                   "file",
                   name_resolver->GetClassName(descriptor->file(),
                                               immutable_api),
@@ -336,7 +336,7 @@
             } else {
               printer->Print(
                   "  return "
-                  "$parent$.$descriptor$.getEnumTypes().get($index$);\n",
+                  "$parent$.$descriptor$.getEnumType($index$);\n",
                   "parent",
                   name_resolver->GetClassName(descriptor->containing_type(),
                                               immutable_api),