From 474603617c692fdd1393c0309048b7ff248da2fd Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Fri, 22 Jul 2016 15:01:17 +1000 Subject: [PATCH] prevent NPE --- .../bytezone/diskbrowser/disk/AppleDiskAddress.java | 2 +- .../diskbrowser/gui/DiskLayoutSelection.java | 2 +- src/com/bytezone/diskbrowser/visicalc/Address.java | 2 -- .../bytezone/diskbrowser/visicalc/Condition.java | 6 ------ .../bytezone/diskbrowser/visicalc/Expression.java | 13 ++----------- src/com/bytezone/diskbrowser/visicalc/Function.java | 1 - 6 files changed, 4 insertions(+), 22 deletions(-) diff --git a/src/com/bytezone/diskbrowser/disk/AppleDiskAddress.java b/src/com/bytezone/diskbrowser/disk/AppleDiskAddress.java index 3e0b0ae..4ae196f 100755 --- a/src/com/bytezone/diskbrowser/disk/AppleDiskAddress.java +++ b/src/com/bytezone/diskbrowser/disk/AppleDiskAddress.java @@ -39,7 +39,7 @@ public class AppleDiskAddress implements DiskAddress @Override public boolean matches (DiskAddress that) { - return this.block == that.getBlock (); + return that != null && this.block == that.getBlock (); } @Override diff --git a/src/com/bytezone/diskbrowser/gui/DiskLayoutSelection.java b/src/com/bytezone/diskbrowser/gui/DiskLayoutSelection.java index e666e1f..3978d4b 100755 --- a/src/com/bytezone/diskbrowser/gui/DiskLayoutSelection.java +++ b/src/com/bytezone/diskbrowser/gui/DiskLayoutSelection.java @@ -135,7 +135,7 @@ class DiskLayoutSelection implements Iterable public boolean isSelected (DiskAddress da) { for (DiskAddress selection : highlights) - if (selection.matches (da)) // NPE 18/7/2016 + if (da.matches (selection)) return true; return false; } diff --git a/src/com/bytezone/diskbrowser/visicalc/Address.java b/src/com/bytezone/diskbrowser/visicalc/Address.java index 4c3a249..da22423 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Address.java +++ b/src/com/bytezone/diskbrowser/visicalc/Address.java @@ -58,8 +58,6 @@ class Address implements Comparable
catch (NumberFormatException e) { System.out.printf ("NFE: %s%n", sRow); - // for (StackTraceElement ste : Thread.currentThread ().getStackTrace ()) - // System.out.println (ste); } } diff --git a/src/com/bytezone/diskbrowser/visicalc/Condition.java b/src/com/bytezone/diskbrowser/visicalc/Condition.java index 9e4b5a3..2a5e1ad 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Condition.java +++ b/src/com/bytezone/diskbrowser/visicalc/Condition.java @@ -45,20 +45,14 @@ class Condition public boolean getResult () { - // System.out.println (conditionText); if (conditionExpression == null) { - // System.out.printf ("creating %s %s %s%n", conditionText, comparator, valueText); conditionExpression = new Expression (parent, conditionText); - // System.out.printf ("creating %s%n", valueText); valueExpression = new Expression (parent, valueText); - // System.out.printf ("calculating %s%n", conditionExpression); conditionExpression.calculate (); - // System.out.printf ("calculating %s%n", valueExpression); valueExpression.calculate (); } - // System.out.println ("after calculation"); if (conditionExpression.isError () || valueExpression.isError ()) return false; diff --git a/src/com/bytezone/diskbrowser/visicalc/Expression.java b/src/com/bytezone/diskbrowser/visicalc/Expression.java index 9fe21cb..2ad81ac 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Expression.java +++ b/src/com/bytezone/diskbrowser/visicalc/Expression.java @@ -16,7 +16,7 @@ class Expression implements Value // From the reference card: // Expressions are evaluated strictly from left to right except as modified by // parentheses. You must start an expression with a +, a digit (0-9), or one of - // the symbols @-(. or #. + // the symbols @-(. or # // [@IF(@ISERROR(BK24),0,BK24)] // [@IF(D4=0,0,1)] @@ -40,7 +40,6 @@ class Expression implements Value { this.text = text; String line = checkBrackets (text); - // System.out.printf ("Exp[%s]%n", line); int ptr = 0; while (ptr < line.length ()) @@ -124,10 +123,6 @@ class Expression implements Value @Override public Value calculate () { - // System.out.printf ("Calculating: %s%n", text); - // if (text.equals ("@NA")) - // Utility.printStackTrace (); - try { Value thisValue = values.get (0); @@ -135,7 +130,6 @@ class Expression implements Value if (thisValue.isError ()) { valueType = thisValue.getValueType (); - // System.out.println ("error"); return this; } value = thisValue.isNotAvailable () ? 0 : thisValue.getValue (); @@ -151,7 +145,6 @@ class Expression implements Value if (thisValue.isError ()) { valueType = thisValue.getValueType (); - // System.out.println ("error"); return this; } @@ -184,7 +177,6 @@ class Expression implements Value valueType = ValueType.ERROR; } - // System.out.printf ("Result: %f%n", value); return this; } @@ -254,13 +246,12 @@ class Expression implements Value System.out.println (input); return "@ERROR"; } - // System.out.printf ("Old expression:[%s]%n", line); + while (rightBracket < leftBracket) { line = line + ")"; rightBracket++; } - // System.out.printf ("New expression:[%s]%n", line); } return line; } diff --git a/src/com/bytezone/diskbrowser/visicalc/Function.java b/src/com/bytezone/diskbrowser/visicalc/Function.java index 762c3b0..c06a6fb 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Function.java +++ b/src/com/bytezone/diskbrowser/visicalc/Function.java @@ -148,7 +148,6 @@ abstract class Function implements Value @Override public double getValue () { - // System.out.printf ("Getting value of : %s %s%n", functionName, functionText); assert valueType == ValueType.VALUE : "Function ValueType = " + valueType; return value; }