From c827e9e543d74d36961054713d470c49bc2b4964 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Fri, 13 Aug 2004 18:58:56 +0000 Subject: [PATCH] Fix a few NPE's. --- .../ast/complete/CompleteParseASTFactory.java | 3 ++- .../core/parser/scanner2/Scanner2.java | 21 +++++++++++++++++-- .../core/parser/token/TokenFactory.java | 1 + 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java index 03f2ba30d34..ab88079d7ff 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java @@ -1355,7 +1355,8 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto * that has a lhs and a rhs as indicated in the specs (section 5.Expressions, page 64) */ protected ITypeInfo usualArithmeticConversions( IASTScope scope, ITypeInfo lhs, ITypeInfo rhs) throws ASTSemanticException{ - + if( lhs == null ) return null; + if( rhs == null ) return null; // if you have a variable of type basic type, then we need to go to the basic type first while( (lhs.getType() == ITypeInfo.t_type) && (lhs.getTypeSymbol() != null)){ lhs = lhs.getTypeSymbol().getTypeInfo(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java index c4fef842aa7..06c60471635 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/Scanner2.java @@ -82,7 +82,7 @@ public class Scanner2 implements IScanner, IScannerData { private ISourceElementRequestor requestor; private ParserLanguage language; - protected IParserLogService log; + private IParserLogService log; private IScannerExtension scannerExtension; private CharArrayObjectMap definitions = new CharArrayObjectMap(512); @@ -207,13 +207,30 @@ public class Scanner2 implements IScanner, IScannerData { pushContext(buffer); bufferData[bufferStackPos] = data; if( data instanceof InclusionData ) - requestor.enterInclusion( ((InclusionData)data).inclusion ); + { + requestor.enterInclusion( ((InclusionData)data).inclusion ); + if( log.isTracing() ) + { + StringBuffer b = new StringBuffer( "Entering inclusion "); //$NON-NLS-1$ + b.append( ((InclusionData)data).reader.filename ); + log.traceLog( b.toString() ); + } + + } } private void popContext() { bufferStack[bufferStackPos] = null; if( bufferData[bufferStackPos] instanceof InclusionData ) + { + if( log.isTracing() ) + { + StringBuffer buffer = new StringBuffer( "Exiting inclusion "); //$NON-NLS-1$ + buffer.append( ((InclusionData)bufferData[bufferStackPos]).reader.filename ); + log.traceLog( buffer.toString() ); + } requestor.exitInclusion( ((InclusionData)bufferData[bufferStackPos]).inclusion ); + } bufferData[bufferStackPos] = null; bufferLineNums[bufferStackPos] = 1; --bufferStackPos; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java index 9501b0bd8df..8bf56ea234f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/TokenFactory.java @@ -74,6 +74,7 @@ public class TokenFactory { } public static ITokenDuple createTokenDuple( ITokenDuple firstDuple, ITokenDuple secondDuple ){ + if( secondDuple == null ) return firstDuple; List [] f1 = firstDuple.getTemplateIdArgLists(); List [] f2 = secondDuple.getTemplateIdArgLists(); if( f1 == null && f2 == null )