diff options
author | Nathan Ridge | 2018-01-02 00:58:49 +0000 |
---|---|---|
committer | Nathan Ridge | 2018-01-10 05:04:19 +0000 |
commit | 2b7188c9a5baaee90ae7187aa8d4a988ae76f1ee (patch) | |
tree | 110ec9c899301e337f5d73cfa59b83544733bc91 /core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom | |
parent | 92bc379917ecf365261385dc98c70e618fa1fe58 (diff) | |
download | org.eclipse.cdt-2b7188c9a5baaee90ae7187aa8d4a988ae76f1ee.tar.gz org.eclipse.cdt-2b7188c9a5baaee90ae7187aa8d4a988ae76f1ee.tar.xz org.eclipse.cdt-2b7188c9a5baaee90ae7187aa8d4a988ae76f1ee.zip |
Bug 529337 - NPE in PDOMCPPLinkage.onCreateNameHelper()
Change-Id: I4fc9ce82b0960dfc0a69044f9c2b3d1edb3d4622
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index f0ba1b38675..5a6ec404f77 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -22,6 +22,7 @@ import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier; +import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; @@ -1008,7 +1009,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { pdomBinding = createBinding(type, method, fileLocalRec); } else if (!getPDOM().hasLastingDefinition(pdomBinding)) { pdomBinding.update(this, method); - old.remove(pdomBinding); + old.remove((ICPPMethod) pdomBinding); // Update the tags based on the tags from the new binding. This was in // PDOMBinding.update, but not all subclasses (e.g., PDOMCPPFunction) @@ -1434,9 +1435,12 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { } if (doit) { long rec= file.getLastUsingDirectiveRec(); - PDOMCPPUsingDirective ud= new PDOMCPPUsingDirective(this, rec, containerNS, - pdomName.getBinding(), pdomName.getFileLocation().getNodeOffset()); - file.setLastUsingDirective(ud.getRecord()); + IASTFileLocation fileLoc = pdomName.getFileLocation(); + if (fileLoc != null) { + PDOMCPPUsingDirective ud= new PDOMCPPUsingDirective(this, rec, containerNS, + pdomName.getBinding(), fileLoc.getNodeOffset()); + file.setLastUsingDirective(ud.getRecord()); + } } } else if (parentNode instanceof ICPPASTElaboratedTypeSpecifier) { ICPPASTElaboratedTypeSpecifier elaboratedSpecifier = (ICPPASTElaboratedTypeSpecifier) parentNode; |