diff options
Diffstat (limited to 'src/analyzer.js')
-rw-r--r-- | src/analyzer.js | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/analyzer.js b/src/analyzer.js index 93e61f1c..13c5c648 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -92,7 +92,7 @@ function analyzer(data) { if (isNumberType(type) || isPointerType(type)) return; data.types[type] = { name_: type, - fields: [ 'int32' ], // XXX + fields: [ 'i32' ], // XXX flatSize: 1, lineNum: '?', }; @@ -166,9 +166,13 @@ function analyzer(data) { var sizes = []; type.flatIndexes = type.fields.map(function(field) { var soFar = type.flatSize; - var size = 1; - if (isStructType(field)) { + var size; + if (isNumberType(field) || isPointerType(field)) { + size = getNativeFieldSize(field); + } else if (isStructType(field)) { size = item.types[field].flatSize; + } else { + assert(0); } type.flatSize += size; sizes.push(size); |