From 54bf3a95dd859ac1811a5265ad45f9eb596de3db Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 10 Oct 2014 18:34:19 +0200 Subject: [PATCH] More Win32 build fixes --- libs/subcircuit/subcircuit.cc | 4 ++++ passes/techmap/extract.cc | 17 +++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libs/subcircuit/subcircuit.cc b/libs/subcircuit/subcircuit.cc index 84f23d636..cf14df0ac 100644 --- a/libs/subcircuit/subcircuit.cc +++ b/libs/subcircuit/subcircuit.cc @@ -34,6 +34,7 @@ using namespace SubCircuit; +#ifndef _YOSYS_ static std::string my_stringf(const char *fmt, ...) { std::string string; @@ -52,6 +53,9 @@ static std::string my_stringf(const char *fmt, ...) return string; } +#else +# define my_stringf YOSYS_NAMESPACE_PREFIX stringf +#endif SubCircuit::Graph::Graph(const Graph &other, const std::vector &otherNodes) { diff --git a/passes/techmap/extract.cc b/passes/techmap/extract.cc index e0b1d360a..994ef8f2a 100644 --- a/passes/techmap/extract.cc +++ b/passes/techmap/extract.cc @@ -518,24 +518,21 @@ struct ExtractPass : public Pass { if (args[argidx] == "-swap" && argidx+2 < args.size()) { std::string type = RTLIL::escape_id(args[++argidx]); std::set ports; - char *ports_str = strdup(args[++argidx].c_str()); - for (char *sptr, *p = strtok_r(ports_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr)) + std::string ports_str = args[++argidx], p; + while (!(p = next_token(ports_str, ",\t\r\n ")).empty()) ports.insert(RTLIL::escape_id(p)); - free(ports_str); solver.addSwappablePorts(type, ports); continue; } if (args[argidx] == "-perm" && argidx+3 < args.size()) { std::string type = RTLIL::escape_id(args[++argidx]); std::vector map_left, map_right; - char *left_str = strdup(args[++argidx].c_str()); - char *right_str = strdup(args[++argidx].c_str()); - for (char *sptr, *p = strtok_r(left_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr)) + std::string left_str = args[++argidx]; + std::string right_str = args[++argidx], p; + while (!(p = next_token(left_str, ",\t\r\n ")).empty()) map_left.push_back(RTLIL::escape_id(p)); - for (char *sptr, *p = strtok_r(right_str, ",\t\r\n ", &sptr); p != NULL; p = strtok_r(NULL, ",\t\r\n ", &sptr)) + while (!(p = next_token(right_str, ",\t\r\n ")).empty()) map_right.push_back(RTLIL::escape_id(p)); - free(left_str); - free(right_str); if (map_left.size() != map_right.size()) log_cmd_error("Arguments to -perm are not a valid permutation!\n"); std::map map; @@ -665,7 +662,7 @@ struct ExtractPass : public Pass { log("Solving for %s in %s.\n", ("needle_" + RTLIL::unescape_id(needle->name)).c_str(), haystack_it.first.c_str()); solver.solve(results, "needle_" + RTLIL::unescape_id(needle->name), haystack_it.first, false); } - log("Found %zd matches.\n", results.size()); + log("Found %d matches.\n", GetSize(results)); if (results.size() > 0) { -- 2.30.2