You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2023/07/30 16:29:11 UTC
[groovy] branch master updated: Cache `elementTypeTargetMap`
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new dadcdffb66 Cache `elementTypeTargetMap`
dadcdffb66 is described below
commit dadcdffb6668d5775b9b08b6bcd102b3e7fb067a
Author: Daniel Sun <su...@apache.org>
AuthorDate: Mon Jul 31 00:28:46 2023 +0800
Cache `elementTypeTargetMap`
---
src/main/java/org/codehaus/groovy/vmplugin/v16/Java16.java | 8 ++++++--
src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java | 8 ++++++--
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v16/Java16.java b/src/main/java/org/codehaus/groovy/vmplugin/v16/Java16.java
index c282e1366f..7c438c2504 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v16/Java16.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v16/Java16.java
@@ -39,6 +39,7 @@ import java.util.stream.Collectors;
* Additional Java 16 based functions will be added here as needed.
*/
public class Java16 extends Java10 {
+ private Map<ElementType, Integer> elementTypeTargetMap;
@Override
public int getVersion() {
@@ -47,8 +48,11 @@ public class Java16 extends Java10 {
@Override
protected Map<ElementType, Integer> getElementTypeTargetMap() {
- Map<ElementType, Integer> elementTypeTargetMap = new EnumMap<>(super.getElementTypeTargetMap());
- elementTypeTargetMap.put(ElementType.RECORD_COMPONENT, AnnotationNode.RECORD_COMPONENT_TARGET);
+ if (null == elementTypeTargetMap) {
+ Map<ElementType, Integer> ettm = new EnumMap<>(super.getElementTypeTargetMap());
+ ettm.put(ElementType.RECORD_COMPONENT, AnnotationNode.RECORD_COMPONENT_TARGET);
+ elementTypeTargetMap = ettm;
+ }
return elementTypeTargetMap;
}
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
index 13b547880c..5f8fbfd37a 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
@@ -62,6 +62,7 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
public class Java9 extends Java8 {
+ private Map<ElementType, Integer> elementTypeTargetMap;
@Override
public int getVersion() {
@@ -70,8 +71,11 @@ public class Java9 extends Java8 {
@Override
protected Map<ElementType, Integer> getElementTypeTargetMap() {
- Map<ElementType, Integer> elementTypeTargetMap = new EnumMap<>(super.getElementTypeTargetMap());
- elementTypeTargetMap.put(ElementType.MODULE, AnnotationNode.TYPE_TARGET); // TODO Add MODULE_TARGET too?
+ if (null == elementTypeTargetMap) {
+ Map<ElementType, Integer> ettm = new EnumMap<>(super.getElementTypeTargetMap());
+ ettm.put(ElementType.MODULE, AnnotationNode.TYPE_TARGET); // TODO Add MODULE_TARGET too?
+ elementTypeTargetMap = ettm;
+ }
return elementTypeTargetMap;
}