summaryrefslogtreecommitdiff
path: root/chapter15/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'chapter15/src/main')
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/Parser.java8
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java1
2 files changed, 4 insertions, 5 deletions
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/Parser.java b/chapter15/src/main/java/com/seaofnodes/simple/Parser.java
index ec040b4f..5164fe2b 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/Parser.java
@@ -762,14 +762,14 @@ public class Parser {
int fidx = base.find(name);
if( fidx == -1 ) throw error("Accessing unknown field '" + name + "' from '" + ptr.str() + "'");
- // Get field type and layout offset
- Field f = base._fields[fidx];
+ // Get field type and layout offset from base type and field index fidx
+ Field f = base._fields[fidx]; // Field from field index
Node off;
- if( name.equals("[]") ) {
+ if( name.equals("[]") ) { // If field is an array body
// Array index math
Node idx = require(parseExpression(),"]");
off = new AddNode(con(base.aryBase()),new ShlNode(idx,con(base.aryScale())).peephole()).peephole();
- } else {
+ } else { // Else normal struct field
// Hardwired field offset
off = con(base.offset(fidx));
}
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java b/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
index 7a25d498..4d441951 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
@@ -18,7 +18,6 @@ public abstract class MemOpNode extends Node {
_name = name;
_alias = alias;
_declaredType = glb;
-
}
public MemOpNode(String name, int alias, Type glb, Node mem, Node ptr, Node off, Node value) {
this(name, alias, glb, mem, ptr, off);