You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2022/11/15 17:56:00 UTC

[royale-compiler] 01/06: linter: null reference checks

This is an automated email from the ASF dual-hosted git repository.

joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit 861d8098e0366b8a8e4462167aca34a1296b42ff
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Mon Oct 31 09:40:37 2022 -0700

    linter: null reference checks
---
 .../java/org/apache/royale/linter/MXMLLinter.java  | 23 ++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/linter/src/main/java/org/apache/royale/linter/MXMLLinter.java b/linter/src/main/java/org/apache/royale/linter/MXMLLinter.java
index bd5662755..7a465d589 100644
--- a/linter/src/main/java/org/apache/royale/linter/MXMLLinter.java
+++ b/linter/src/main/java/org/apache/royale/linter/MXMLLinter.java
@@ -104,7 +104,9 @@ public class MXMLLinter extends BaseLinter {
 			PrefixMap prefixMap = mxmlTokenizer.getPrefixMap();
 			MXMLData mxmlData = new MXMLData(originalTokens, prefixMap, new StringFileSpecification(filePath, text));
 			IMXMLTagData rootTag = mxmlData.getRootTag();
-			visitTag(rootTag, tokenQuery, fileProblems);
+			if (rootTag != null) {
+				visitTag(rootTag, tokenQuery, fileProblems);
+			}
 			IMXMLUnitData current = rootTag;
 			int offset = 1;
 			String className = Paths.get(filePath).getFileName().toString();
@@ -112,15 +114,20 @@ public class MXMLLinter extends BaseLinter {
 			if (extensionIndex != -1) {
 				className = className.substring(0, extensionIndex);
 			}
-			String componentName = mxmlData.getRootTag().getShortName();
+			String componentName = null;
+			if (rootTag != null) {
+				componentName = rootTag.getShortName();
+			}
 			StringBuilder builder = new StringBuilder();
 			builder.append("/* ");
 			builder.append(LINTER_TAG_OFF);
 			builder.append(" */");
 			builder.append("package{public class ");
 			builder.append(className);
-			builder.append(" extends ");
-			builder.append(componentName);
+			if (componentName != null) {
+				builder.append(" extends ");
+				builder.append(componentName);
+			}
 			builder.append("{");
 			while (current != null) {
 				if (current instanceof IMXMLTagData) {
@@ -192,8 +199,8 @@ public class MXMLLinter extends BaseLinter {
 					String tokenText = text.substring(start, end);
 					MXMLToken formattingToken = new MXMLToken(MXMLTokenQuery.TOKEN_TYPE_FORMATTING, start, end,
 							prevToken.getLine(), prevToken.getColumn() + end - start, tokenText);
-							formattingToken.setEndLine(token.getLine());
-							formattingToken.setEndLine(token.getColumn());
+					formattingToken.setEndLine(token.getLine());
+					formattingToken.setEndLine(token.getColumn());
 					tokens.add(formattingToken);
 				}
 			}
@@ -207,8 +214,8 @@ public class MXMLLinter extends BaseLinter {
 				String tokenText = text.substring(start, end);
 				MXMLToken formattingToken = new MXMLToken(MXMLTokenQuery.TOKEN_TYPE_FORMATTING, start, end,
 						prevToken.getLine(), prevToken.getColumn() + end - start, tokenText);
-					formattingToken.setEndLine(prevToken.getLine());
-					formattingToken.setEndLine(prevToken.getColumn());
+				formattingToken.setEndLine(prevToken.getLine());
+				formattingToken.setEndLine(prevToken.getColumn());
 				tokens.add(formattingToken);
 			}
 		}