diff options
author | Alon Zakai <azakai@mozilla.com> | 2010-12-25 17:18:19 -0800 |
---|---|---|
committer | Alon Zakai <azakai@mozilla.com> | 2010-12-25 17:18:19 -0800 |
commit | 2f8f8a72fffffdd2b9f4114c0d7e7d8bc941c1d2 (patch) | |
tree | fa50bf720b24980b25a1233d8797d089b5eccd17 /src/parseTools.js | |
parent | b2fd961d06812c0bfcecc19521a040b8c0a06d24 (diff) |
clean up getNativeFieldSize
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/parseTools.js b/src/parseTools.js index a5a20939..ac212248 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -335,7 +335,7 @@ function parseLLVMFunctionCall(segment) { assertTrue(['inreg', 'byval'].indexOf(segment[1].text) == -1); assert(segment[1].text in PARSABLE_LLVM_FUNCTIONS); while (!segment[2].item) { - segment.splice(2, 1); // XXX Remove modifiers - should look into them some day + segment.splice(2, 1); // Remove modifiers if (!segment[2]) throw 'Invalid segment!'; } var ret = { @@ -452,23 +452,20 @@ function getLabelIds(labels) { //! @param alone Whether this is inside a structure (so padding is //! used) or alone (line in char*, where no padding is done). function getNativeFieldSize(field, alone) { - var size; - if (QUANTUM_SIZE > 1) { - size = { - 'i1': alone ? 1 : 4, // inside a struct, aligned to 4, - 'i8': alone ? 1 : 4, // most likely...? XXX - 'i16': alone ? 2 : 4, // ditto - 'i32': 4, - 'i64': 8, - 'float': 4, - 'double':8 - }[field]; // XXX 32/64 bit stuff - if (!size) { - size = 4; // Must be a pointer XXX 32/64 - } - } else { - size = 1; + if (QUANTUM_SIZE == 1) return 1; + var size = { + 'i1': 1, + 'i8': 1, + 'i16': 2, + 'i32': 4, + 'i64': 8, + 'float': 4, + 'double':8 + }[field]; + if (!size) { + size = QUANTUM_SIZE; // A pointer } + if (!alone) size = Math.max(size, QUANTUM_SIZE); return size; } |