diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-13 18:36:22 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-13 18:36:22 +0300 |
commit | b93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c (patch) | |
tree | 41e9d0c0e8aaf072714b6f2a67b642be3fc10138 /src/analysis/function.cpp | |
parent | 23c4fc020718cfbc43bc83d3b5ce88ab5bdab111 (diff) | |
download | paranucker-b93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c.tar.gz paranucker-b93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c.tar.bz2 paranucker-b93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c.tar.xz paranucker-b93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c.zip |
Fix different crash issues.
Diffstat (limited to 'src/analysis/function.cpp')
-rw-r--r-- | src/analysis/function.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/analysis/function.cpp b/src/analysis/function.cpp index 114bb43..59406ed 100644 --- a/src/analysis/function.cpp +++ b/src/analysis/function.cpp @@ -44,8 +44,12 @@ void getFunctionArgTypes(FunctionDeclNode *node, if (!node->functionType) return; + // need impliment also for METHOD_TYPE + if (node->functionType->nodeType != FUNCTION_TYPE) + return; + // walk in TREE_LIST and get value nodes - FOR_TREE_LIST2(list, node->functionType->argTypes) + FOR_TREE_LIST2(list, static_cast<FunctionTypeNode*>(node->functionType)->argTypes) { arr.push_back(static_cast<TypeNode*>(list->value)); } @@ -109,7 +113,7 @@ void analyseFunction(FunctionDeclNode *node, const WalkItem &wi, WalkItem &wo) if (command == Command::FindArgs) Log::log("%s: ", node->label.c_str()); - int sz = node->args.size(); + size_t sz = node->args.size(); if (types.size() < sz) sz = types.size(); for (int f = 0; f < sz; f ++) |