Scinotes: fix a NPE when editing huge file 65/18165/2
Clément DAVID [Fri, 13 May 2016 08:24:40 +0000 (10:24 +0200)]
Change-Id: I61b72ec2a827755bcef7f357269c9e55de51083c

scilab/modules/scinotes/src/java/jflex/scilab.jflex
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/FunctionScanner.java
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/IndentScanner.java
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/MatchingBlockScanner.java
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabLexer.java

index 2c68b13..cad4854 100644 (file)
@@ -134,6 +134,11 @@ import org.scilab.modules.commons.ScilabCommonsUtils;
     }
 
     public int getKeyword(int pos, boolean strict) {
+        // Pre condition
+        if (elem == null) {
+            return ScilabLexerConstants.DEFAULT;
+        }
+
         Element line = elem.getElement(elem.getElementIndex(pos));
         int end = line.getEndOffset();
         int tok = -1;
index 2933d38..8467042 100644 (file)
@@ -16,7 +16,7 @@ import javax.swing.text.Element;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
- * from the specification file <tt>../../../../jflex/function.jflex</tt>
+ * from the specification file <tt>modules/scinotes/src/java/jflex/function.jflex</tt>
  */
 public final class FunctionScanner {
 
index cd7b91b..930620e 100644 (file)
@@ -14,7 +14,7 @@ import javax.swing.text.BadLocationException;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
- * from the specification file <tt>../../../../jflex/indentation.jflex</tt>
+ * from the specification file <tt>modules/scinotes/src/java/jflex/indentation.jflex</tt>
  */
 public final class IndentScanner {
 
index bf5e634..9e6ccfe 100644 (file)
@@ -13,7 +13,7 @@ import javax.swing.text.Element;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
- * from the specification file <tt>../../../../jflex/matchingblock.jflex</tt>
+ * from the specification file <tt>modules/scinotes/src/java/jflex/matchingblock.jflex</tt>
  */
 public final class MatchingBlockScanner {
 
index 9a9a3f6..bcb9325 100644 (file)
@@ -21,7 +21,7 @@ import org.scilab.modules.commons.ScilabCommonsUtils;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
- * from the specification file <tt>../../../../jflex/scilab.jflex</tt>
+ * from the specification file <tt>modules/scinotes/src/java/jflex/scilab.jflex</tt>
  */
 public final class ScilabLexer extends ScilabLexerConstants {
 
@@ -790,6 +790,11 @@ public final class ScilabLexer extends ScilabLexerConstants {
     }
 
     public int getKeyword(int pos, boolean strict) {
+        // Pre condition
+        if (elem == null) {
+            return ScilabLexerConstants.DEFAULT;
+        }
+
         Element line = elem.getElement(elem.getElementIndex(pos));
         int end = line.getEndOffset();
         int tok = -1;