Skip to content

Commit 559b441

Browse files
authored
Merge pull request open-source-parsers#599 from pavel-pimenov/fix-v815
Fix V815:Decreased performance
2 parents f7df408 + 6ca3743 commit 559b441

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

src/lib_json/json_reader.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ bool Reader::parse(const char* beginDoc,
137137
current_ = begin_;
138138
lastValueEnd_ = 0;
139139
lastValue_ = 0;
140-
commentsBefore_ = "";
140+
commentsBefore_.clear();
141141
errors_.clear();
142142
while (!nodes_.empty())
143143
nodes_.pop();
@@ -176,7 +176,7 @@ bool Reader::readValue() {
176176

177177
if (collectComments_ && !commentsBefore_.empty()) {
178178
currentValue().setComment(commentsBefore_, commentBefore);
179-
commentsBefore_ = "";
179+
commentsBefore_.clear();
180180
}
181181

182182
switch (token.type_) {
@@ -474,7 +474,7 @@ bool Reader::readObject(Token& tokenStart) {
474474
break;
475475
if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
476476
return true;
477-
name = "";
477+
name.clear();
478478
if (tokenName.type_ == tokenString) {
479479
if (!decodeString(tokenName, name))
480480
return recoverFromError(tokenObjectEnd);
@@ -1056,7 +1056,7 @@ bool OurReader::parse(const char* beginDoc,
10561056
current_ = begin_;
10571057
lastValueEnd_ = 0;
10581058
lastValue_ = 0;
1059-
commentsBefore_ = "";
1059+
commentsBefore_.clear();
10601060
errors_.clear();
10611061
while (!nodes_.empty())
10621062
nodes_.pop();
@@ -1098,7 +1098,7 @@ bool OurReader::readValue() {
10981098

10991099
if (collectComments_ && !commentsBefore_.empty()) {
11001100
currentValue().setComment(commentsBefore_, commentBefore);
1101-
commentsBefore_ = "";
1101+
commentsBefore_.clear();
11021102
}
11031103

11041104
switch (token.type_) {
@@ -1447,7 +1447,7 @@ bool OurReader::readObject(Token& tokenStart) {
14471447
break;
14481448
if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
14491449
return true;
1450-
name = "";
1450+
name.clear();
14511451
if (tokenName.type_ == tokenString) {
14521452
if (!decodeString(tokenName, name))
14531453
return recoverFromError(tokenObjectEnd);

src/lib_json/json_value.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ bool Value::isConvertibleTo(ValueType other) const {
880880
case nullValue:
881881
return (isNumeric() && asDouble() == 0.0) ||
882882
(type_ == booleanValue && value_.bool_ == false) ||
883-
(type_ == stringValue && asString() == "") ||
883+
(type_ == stringValue && asString().empty()) ||
884884
(type_ == arrayValue && value_.map_->size() == 0) ||
885885
(type_ == objectValue && value_.map_->size() == 0) ||
886886
type_ == nullValue;
@@ -1506,6 +1506,7 @@ Path::Path(const JSONCPP_STRING& path,
15061506
const PathArgument& a4,
15071507
const PathArgument& a5) {
15081508
InArgs in;
1509+
in.reserve(5);
15091510
in.push_back(&a1);
15101511
in.push_back(&a2);
15111512
in.push_back(&a3);

src/lib_json/json_writer.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
335335
void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
336336

337337
JSONCPP_STRING FastWriter::write(const Value& root) {
338-
document_ = "";
338+
document_.clear();
339339
writeValue(root);
340340
if (!omitEndingLineFeed_)
341341
document_ += "\n";
@@ -403,9 +403,9 @@ StyledWriter::StyledWriter()
403403
: rightMargin_(74), indentSize_(3), addChildValues_() {}
404404

405405
JSONCPP_STRING StyledWriter::write(const Value& root) {
406-
document_ = "";
406+
document_.clear();
407407
addChildValues_ = false;
408-
indentString_ = "";
408+
indentString_.clear();
409409
writeCommentBeforeValue(root);
410410
writeValue(root);
411411
writeCommentAfterValueOnSameLine(root);
@@ -619,7 +619,7 @@ StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation)
619619
void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
620620
document_ = &out;
621621
addChildValues_ = false;
622-
indentString_ = "";
622+
indentString_.clear();
623623
indented_ = true;
624624
writeCommentBeforeValue(root);
625625
if (!indented_) writeIndent();
@@ -901,7 +901,7 @@ int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout)
901901
sout_ = sout;
902902
addChildValues_ = false;
903903
indented_ = true;
904-
indentString_ = "";
904+
indentString_.clear();
905905
writeCommentBeforeValue(root);
906906
if (!indented_) writeIndent();
907907
indented_ = true;
@@ -1155,10 +1155,10 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const
11551155
}
11561156
JSONCPP_STRING nullSymbol = "null";
11571157
if (dnp) {
1158-
nullSymbol = "";
1158+
nullSymbol.clear();
11591159
}
11601160
if (pre > 17) pre = 17;
1161-
JSONCPP_STRING endingLineFeedSymbol = "";
1161+
JSONCPP_STRING endingLineFeedSymbol;
11621162
return new BuiltStyledStreamWriter(
11631163
indentation, cs,
11641164
colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);

0 commit comments

Comments
 (0)