diff options
| author | Cliff Click <cliffc@acm.org> | 2024-09-30 10:45:08 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-06 08:56:22 -0700 |
| commit | 96bb8a2e97fee10ef6f6093ff3a86aba2443de40 (patch) | |
| tree | 071e5060f259b77c6348754f75e796c131b87ce7 /chapter15/src | |
| parent | 7e4ec3f0e38987fd4e12ed94d5241001e2a8a21e (diff) | |
| download | Simple-96bb8a2e97fee10ef6f6093ff3a86aba2443de40.tar.gz Simple-96bb8a2e97fee10ef6f6093ff3a86aba2443de40.zip | |
Lots of README
Diffstat (limited to 'chapter15/src')
| -rw-r--r-- | chapter15/src/main/java/com/seaofnodes/simple/Parser.java | 8 | ||||
| -rw-r--r-- | chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java | 1 |
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); |
