diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2014-09-06 21:09:50 +0200 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2014-09-06 21:10:13 +0200 |
commit | 93193c8ffdda53a19a889b23ef61f9d3191b6448 (patch) | |
tree | ecde693a0c4a4b4b0326fc3fd2143d0b27746f70 | |
parent | 6eb427ed6e5686c2507a07fedfc3161aa665f65e (diff) | |
parent | 41ef558aa907c50a055c44c4e6abaf813b23aeff (diff) |
Merge pull request #4851
41ef558 univalue: make spaceStr thread-safe (Wladimir J. van der Laan)
-rw-r--r-- | src/univalue/univalue_write.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/univalue/univalue_write.cpp b/src/univalue/univalue_write.cpp index 042091a827..9565cfa11a 100644 --- a/src/univalue/univalue_write.cpp +++ b/src/univalue/univalue_write.cpp @@ -70,15 +70,9 @@ string UniValue::write(unsigned int prettyIndent, return s; } -static string spaceStr; - -static string indentStr(unsigned int prettyIndent, unsigned int indentLevel) +static void indentStr(unsigned int prettyIndent, unsigned int indentLevel, string& s) { - unsigned int spaces = prettyIndent * indentLevel; - while (spaceStr.size() < spaces) - spaceStr += " "; - - return spaceStr.substr(0, spaces); + s.append(prettyIndent * indentLevel, ' '); } void UniValue::writeArray(unsigned int prettyIndent, unsigned int indentLevel, string& s) const @@ -89,7 +83,7 @@ void UniValue::writeArray(unsigned int prettyIndent, unsigned int indentLevel, s for (unsigned int i = 0; i < values.size(); i++) { if (prettyIndent) - s += indentStr(prettyIndent, indentLevel); + indentStr(prettyIndent, indentLevel, s); s += values[i].write(prettyIndent, indentLevel + 1); if (i != (values.size() - 1)) { s += ","; @@ -101,7 +95,7 @@ void UniValue::writeArray(unsigned int prettyIndent, unsigned int indentLevel, s } if (prettyIndent) - s += indentStr(prettyIndent, indentLevel - 1); + indentStr(prettyIndent, indentLevel - 1, s); s += "]"; } @@ -113,7 +107,7 @@ void UniValue::writeObject(unsigned int prettyIndent, unsigned int indentLevel, for (unsigned int i = 0; i < keys.size(); i++) { if (prettyIndent) - s += indentStr(prettyIndent, indentLevel); + indentStr(prettyIndent, indentLevel, s); s += "\"" + json_escape(keys[i]) + "\":"; if (prettyIndent) s += " "; @@ -125,7 +119,7 @@ void UniValue::writeObject(unsigned int prettyIndent, unsigned int indentLevel, } if (prettyIndent) - s += indentStr(prettyIndent, indentLevel - 1); + indentStr(prettyIndent, indentLevel - 1, s); s += "}"; } |