summaryrefslogtreecommitdiff
path: root/src/analysis/function.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-13 18:36:22 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-13 18:36:22 +0300
commitb93d2cb75a0e01876ab600dc3dec6a7f53d4dd8c (patch)
tree41e9d0c0e8aaf072714b6f2a67b642be3fc10138 /src/analysis/function.cpp
parent23c4fc020718cfbc43bc83d3b5ce88ab5bdab111 (diff)
downloadparanucker-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.cpp8
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 ++)