From c2e44ad3d1b15d7c71f0b9bfef0497ab88b8a1c0 Mon Sep 17 00:00:00 2001
From: Saurabh Rawat <saurabh.rawat90@gmail.com>
Date: Wed, 27 Jun 2018 12:46:06 +0530
Subject: [PATCH] make scala work

---
 .../java/com/aparapi/internal/instruction/ExpressionList.java  | 3 ++-
 .../java/com/aparapi/internal/instruction/InstructionSet.java  | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/aparapi/internal/instruction/ExpressionList.java b/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
index 4aa24b50..c7d38b13 100644
--- a/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
+++ b/src/main/java/com/aparapi/internal/instruction/ExpressionList.java
@@ -813,7 +813,8 @@ public class ExpressionList{
                 logger.fine("Scope block from " + startPc + " to  " + (tail.getThisPC() + tail.getLength()));
                 for (Instruction i = head; i != null; i = i.getNextPC()) {
                     if (i.getThisPC() == startPc) {
-                        final Instruction startInstruction = i.getRootExpr().getPrevExpr();
+                        final Instruction j = i.getRootExpr().getPrevExpr();
+                        final Instruction startInstruction =  j == null ? i : j;
                         logger.fine("Start = " + startInstruction);
 
                         addAsComposites(ByteCode.COMPOSITE_ARBITRARY_SCOPE, startInstruction.getPrevExpr(), null);
diff --git a/src/main/java/com/aparapi/internal/instruction/InstructionSet.java b/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
index cc331733..9fe5a71a 100644
--- a/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
+++ b/src/main/java/com/aparapi/internal/instruction/InstructionSet.java
@@ -1276,7 +1276,7 @@ public class InstructionSet{
       @Override public boolean isDeclaration() {
          LocalVariableInfo lvi = method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(),
                getLocalVariableTableIndex());
-         return (lvi != null) && (lvi.getStart() == getThisPC() + getLength());
+             return (lvi != null) && (lvi.getStart() == getThisPC() + getLength() || lvi.getStart() == getThisPC());
       }
 
       @Override public String getDescription() {
-- 
GitLab