diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-05-30 18:49:03 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-05-30 18:49:03 -0700 |
commit | 68d23c61c9d8967b5d8798b48a686ac5a670c1d1 (patch) | |
tree | ed5fdddec043bbed679818eb8cff286ff6096d43 /src/parseTools.js | |
parent | c0555446e5f3e4e8cd1b9210b9ed447c0197c386 (diff) |
properly identify function pointers that return things like [64 x i16]*
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/parseTools.js b/src/parseTools.js index 81fa61d9..158e6340 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -169,7 +169,15 @@ function isFunctionDef(token, out) { function isFunctionType(type, out) { type = type.replace(/"[^"]+"/g, '".."'); - var parts = type.split(' '); + var parts; + // hackish, but quick splitting of function def parts. this must be fast as it happens a lot + if (type[0] != '[') { + parts = type.split(' '); + } else { + var index = type.search(']'); + index += type.substr(index).search(' '); + parts = [type.substr(0, index), type.substr(index+1)]; + } if (pointingLevels(type) !== 1) return false; var text = removeAllPointing(parts.slice(1).join(' ')); if (!text) return false; |