Merge pull request #599 from pavel-pimenov/fix-v815

Fix V815:Decreased performance
This commit is contained in:
Christopher Dunn 2017-04-08 00:49:26 -05:00 committed by GitHub
commit 559b4416e6
3 changed files with 15 additions and 14 deletions

View File

@ -137,7 +137,7 @@ bool Reader::parse(const char* beginDoc,
current_ = begin_;
lastValueEnd_ = 0;
lastValue_ = 0;
commentsBefore_ = "";
commentsBefore_.clear();
errors_.clear();
while (!nodes_.empty())
nodes_.pop();
@ -176,7 +176,7 @@ bool Reader::readValue() {
if (collectComments_ && !commentsBefore_.empty()) {
currentValue().setComment(commentsBefore_, commentBefore);
commentsBefore_ = "";
commentsBefore_.clear();
}
switch (token.type_) {
@ -474,7 +474,7 @@ bool Reader::readObject(Token& tokenStart) {
break;
if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
return true;
name = "";
name.clear();
if (tokenName.type_ == tokenString) {
if (!decodeString(tokenName, name))
return recoverFromError(tokenObjectEnd);
@ -1056,7 +1056,7 @@ bool OurReader::parse(const char* beginDoc,
current_ = begin_;
lastValueEnd_ = 0;
lastValue_ = 0;
commentsBefore_ = "";
commentsBefore_.clear();
errors_.clear();
while (!nodes_.empty())
nodes_.pop();
@ -1098,7 +1098,7 @@ bool OurReader::readValue() {
if (collectComments_ && !commentsBefore_.empty()) {
currentValue().setComment(commentsBefore_, commentBefore);
commentsBefore_ = "";
commentsBefore_.clear();
}
switch (token.type_) {
@ -1447,7 +1447,7 @@ bool OurReader::readObject(Token& tokenStart) {
break;
if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
return true;
name = "";
name.clear();
if (tokenName.type_ == tokenString) {
if (!decodeString(tokenName, name))
return recoverFromError(tokenObjectEnd);

View File

@ -880,7 +880,7 @@ bool Value::isConvertibleTo(ValueType other) const {
case nullValue:
return (isNumeric() && asDouble() == 0.0) ||
(type_ == booleanValue && value_.bool_ == false) ||
(type_ == stringValue && asString() == "") ||
(type_ == stringValue && asString().empty()) ||
(type_ == arrayValue && value_.map_->size() == 0) ||
(type_ == objectValue && value_.map_->size() == 0) ||
type_ == nullValue;
@ -1506,6 +1506,7 @@ Path::Path(const JSONCPP_STRING& path,
const PathArgument& a4,
const PathArgument& a5) {
InArgs in;
in.reserve(5);
in.push_back(&a1);
in.push_back(&a2);
in.push_back(&a3);

View File

@ -335,7 +335,7 @@ void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
JSONCPP_STRING FastWriter::write(const Value& root) {
document_ = "";
document_.clear();
writeValue(root);
if (!omitEndingLineFeed_)
document_ += "\n";
@ -403,9 +403,9 @@ StyledWriter::StyledWriter()
: rightMargin_(74), indentSize_(3), addChildValues_() {}
JSONCPP_STRING StyledWriter::write(const Value& root) {
document_ = "";
document_.clear();
addChildValues_ = false;
indentString_ = "";
indentString_.clear();
writeCommentBeforeValue(root);
writeValue(root);
writeCommentAfterValueOnSameLine(root);
@ -619,7 +619,7 @@ StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation)
void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
document_ = &out;
addChildValues_ = false;
indentString_ = "";
indentString_.clear();
indented_ = true;
writeCommentBeforeValue(root);
if (!indented_) writeIndent();
@ -901,7 +901,7 @@ int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout)
sout_ = sout;
addChildValues_ = false;
indented_ = true;
indentString_ = "";
indentString_.clear();
writeCommentBeforeValue(root);
if (!indented_) writeIndent();
indented_ = true;
@ -1155,10 +1155,10 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const
}
JSONCPP_STRING nullSymbol = "null";
if (dnp) {
nullSymbol = "";
nullSymbol.clear();
}
if (pre > 17) pre = 17;
JSONCPP_STRING endingLineFeedSymbol = "";
JSONCPP_STRING endingLineFeedSymbol;
return new BuiltStyledStreamWriter(
indentation, cs,
colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);