summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/generator_utils.cpp7
-rw-r--r--tools/generator_utils.h1
2 files changed, 5 insertions, 3 deletions
diff --git a/tools/generator_utils.cpp b/tools/generator_utils.cpp
index 7ddc087..828cf12 100644
--- a/tools/generator_utils.cpp
+++ b/tools/generator_utils.cpp
@@ -85,7 +85,7 @@ const char *atomic_type_to_string(char t)
return atos[i].name;
}
-void _parse_signature(const string &signature, string &type, unsigned int &i)
+static void _parse_signature(const string &signature, string &type, unsigned int &i, bool only_once = false)
{
cout << "signature: " << signature << endl;
cout << "type: " << type << endl;
@@ -120,7 +120,7 @@ void _parse_signature(const string &signature, string &type, unsigned int &i)
default:
{
type += "std::vector< ";
- _parse_signature(signature, type, i);
+ _parse_signature(signature, type, i, true);
type += " >";
@@ -158,6 +158,9 @@ void _parse_signature(const string &signature, string &type, unsigned int &i)
}
}
+ if (only_once)
+ return;
+
if (i+1 < signature.length() && signature[i+1] != ')' && signature[i+1] != '}')
{
type += ", ";
diff --git a/tools/generator_utils.h b/tools/generator_utils.h
index b232b56..ea754df 100644
--- a/tools/generator_utils.h
+++ b/tools/generator_utils.h
@@ -31,7 +31,6 @@
const char *atomic_type_to_string(char t);
std::string stub_name(std::string name);
std::string signature_to_type(const std::string &signature);
-void _parse_signature(const std::string &signature, std::string &type, unsigned int &i);
void underscorize(std::string &str);
/// create std::string from any number