From 1735a17c5e45334b74b2d94886a09cd2a1467abd Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 10 Mar 2017 11:52:02 -0800 Subject: [PATCH] Bug 513345 - A lot of time during indexing is spent inside CompositeValue.create Minor code cleanup. Change-Id: I92ea01711034df5fa88cd41a81a54450fdb0ba6c --- .../org/eclipse/cdt/internal/core/pdom/PDOMWriter.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java index a68ecd1d76b..2fd598d537a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java @@ -376,7 +376,9 @@ public abstract class PDOMWriter implements IPDOMASTProcessor { try { final IBinding binding = name.resolveBinding(); if (binding instanceof ICPPInternalDeclaredVariable) { - variables.add((ICPPInternalDeclaredVariable) binding); + ICPPInternalDeclaredVariable variable = (ICPPInternalDeclaredVariable) binding; + if (variables.add(variable)) + variable.allDeclarationsDefinitionsAdded(); } if (name.getPropertyInParent() == ICPPASTTemplateId.TEMPLATE_NAME && @@ -424,7 +426,6 @@ public abstract class PDOMWriter implements IPDOMASTProcessor { // Precalculate types and initial values of all indexed variables to avoid doing it later when writing // to the index. for (ICPPInternalDeclaredVariable variable : variables) { - variable.allDeclarationsDefinitionsAdded(); if (isVariableIndexed(variable)) { // Type and initial value will be cached by the variable. variable.getType(); @@ -439,7 +440,7 @@ public abstract class PDOMWriter implements IPDOMASTProcessor { if (variable instanceof ICPPField) return true; IBinding owner = variable.getOwner(); - if (owner == null || owner instanceof IASTTranslationUnit || owner instanceof ICPPNamespace) + if (owner == null || owner instanceof ICPPNamespace) return true; return owner instanceof ICPPFunction && ((ICPPFunction) owner).isConstexpr(); }