diff options
author | Danny van Bruggen <lol@meuk.info> | 2017-12-14 20:41:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-14 20:41:31 +0100 |
commit | 47f5ecd6cdc6d1c2f94973a63945679a5984ed23 (patch) | |
tree | e230c1529dac8298d36acc0e0d6b84df961fb262 /javaparser-core/src/main/java/com | |
parent | d0c42cd08bf5b3e0e42367a483738dff6e62c3d1 (diff) | |
parent | 6812e7642486d3f3cb68a866e456664e51d943e7 (diff) | |
download | platform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.tar.gz platform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.tar.bz2 platform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.zip |
Merge branch 'master' into issue_1290_replace_bug
Diffstat (limited to 'javaparser-core/src/main/java/com')
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java index a56662e05..d17f76835 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java @@ -27,6 +27,9 @@ import com.github.javaparser.ast.observer.AstObserverAdapter; import com.github.javaparser.ast.type.UnknownType; import java.util.IdentityHashMap; +import java.util.Map; + +import static java.util.Collections.synchronizedMap; /** * We want to recognize and ignore "phantom" nodes, like the fake type of variable in FieldDeclaration @@ -35,7 +38,7 @@ class PhantomNodeLogic { private static final int LEVELS_TO_EXPLORE = 3; - private static final IdentityHashMap<Node, Boolean> isPhantomNodeCache = new IdentityHashMap<>(); + private static final Map<Node, Boolean> isPhantomNodeCache = synchronizedMap(new IdentityHashMap<>()); private static final AstObserver cacheCleaner = new AstObserverAdapter() { @Override @@ -45,19 +48,19 @@ class PhantomNodeLogic { }; static boolean isPhantomNode(Node node) { - boolean res; if (isPhantomNodeCache.containsKey(node)) { - res = isPhantomNodeCache.get(node); + return isPhantomNodeCache.get(node); } else { if (node instanceof UnknownType) { return true; } - res = (node.getParentNode().isPresent() && !node.getParentNode().get().getRange().get().contains( - node.getRange().get()) || inPhantomNode(node, LEVELS_TO_EXPLORE)); + boolean res = (node.getParentNode().isPresent() && + !node.getParentNode().get().getRange().get().contains(node.getRange().get()) + || inPhantomNode(node, LEVELS_TO_EXPLORE)); isPhantomNodeCache.put(node, res); node.register(cacheCleaner); + return res; } - return res; } /** |