Skip to content

Commit 3beadff

Browse files
committed
PERF: readability container size empty
The emptiness of a container should be checked using the empty() method instead of the size() method. It is not guaranteed that size() is a constant-time function, and it is generally more efficient and also shows clearer intent to use empty(). Furthermore some containers may implement the empty() method but not implement the size() method. Using empty() whenever possible makes it easier to switch to another container in the future. SRCDIR=/Users/johnsonhj/src/jsoncpp/ #My local SRC BLDDIR=/Users/johnsonhj/src/jsoncpp/cmake-build-debug/ #My local BLD cd /Users/johnsonhj/src/jsoncpp/cmake-build-debug/ run-clang-tidy.py -extra-arg=-D__clang__ -checks=-*,readability-container-size-empty -header-filter=.* -fix
1 parent d3d2e17 commit 3beadff

File tree

4 files changed

+23
-23
lines changed

4 files changed

+23
-23
lines changed

src/lib_json/json_reader.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ bool Reader::pushError(const Value& value,
880880
return true;
881881
}
882882

883-
bool Reader::good() const { return !errors_.size(); }
883+
bool Reader::good() const { return errors_.empty(); }
884884

885885
// exact copy of Features
886886
class OurFeatures {
@@ -1895,7 +1895,7 @@ bool OurReader::pushError(const Value& value,
18951895
return true;
18961896
}
18971897

1898-
bool OurReader::good() const { return !errors_.size(); }
1898+
bool OurReader::good() const { return errors_.empty(); }
18991899

19001900
class OurCharReader : public CharReader {
19011901
bool const collectComments_;
@@ -1961,7 +1961,7 @@ bool CharReaderBuilder::validate(Json::Value* invalid) const {
19611961
inv[key] = settings_[key];
19621962
}
19631963
}
1964-
return 0u == inv.size();
1964+
return inv.empty();
19651965
}
19661966
Value& CharReaderBuilder::operator[](const JSONCPP_STRING& key) {
19671967
return settings_[key];

src/lib_json/json_value.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -889,8 +889,8 @@ bool Value::isConvertibleTo(ValueType other) const {
889889
return (isNumeric() && asDouble() == 0.0) ||
890890
(type_ == booleanValue && value_.bool_ == false) ||
891891
(type_ == stringValue && asString().empty()) ||
892-
(type_ == arrayValue && value_.map_->size() == 0) ||
893-
(type_ == objectValue && value_.map_->size() == 0) ||
892+
(type_ == arrayValue && value_.map_->empty()) ||
893+
(type_ == objectValue && value_.map_->empty()) ||
894894
type_ == nullValue;
895895
case intValue:
896896
return isInt() ||

src/lib_json/json_writer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ bool StyledWriter::isMultilineArray(const Value& value) {
551551
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
552552
const Value& childValue = value[index];
553553
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
554-
childValue.size() > 0);
554+
!childValue.empty());
555555
}
556556
if (!isMultiLine) // check if line length > max line length
557557
{
@@ -774,7 +774,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) {
774774
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
775775
const Value& childValue = value[index];
776776
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
777-
childValue.size() > 0);
777+
!childValue.empty());
778778
}
779779
if (!isMultiLine) // check if line length > max line length
780780
{
@@ -1059,7 +1059,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) {
10591059
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
10601060
Value const& childValue = value[index];
10611061
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
1062-
childValue.size() > 0);
1062+
!childValue.empty());
10631063
}
10641064
if (!isMultiLine) // check if line length > max line length
10651065
{
@@ -1226,7 +1226,7 @@ bool StreamWriterBuilder::validate(Json::Value* invalid) const {
12261226
inv[key] = settings_[key];
12271227
}
12281228
}
1229-
return 0u == inv.size();
1229+
return inv.empty();
12301230
}
12311231
Value& StreamWriterBuilder::operator[](const JSONCPP_STRING& key) {
12321232
return settings_[key];

src/test_lib_json/main.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1818,7 +1818,7 @@ JSONTEST_FIXTURE(StreamWriterTest, dropNullPlaceholders) {
18181818
b.settings_["dropNullPlaceholders"] = false;
18191819
JSONTEST_ASSERT(Json::writeString(b, nullValue) == "null");
18201820
b.settings_["dropNullPlaceholders"] = true;
1821-
JSONTEST_ASSERT(Json::writeString(b, nullValue) == "");
1821+
JSONTEST_ASSERT(Json::writeString(b, nullValue).empty());
18221822
}
18231823

18241824
JSONTEST_FIXTURE(StreamWriterTest, writeZeroes) {
@@ -1850,8 +1850,8 @@ JSONTEST_FIXTURE(ReaderTest, parseWithNoErrors) {
18501850
Json::Value root;
18511851
bool ok = reader.parse("{ \"property\" : \"value\" }", root);
18521852
JSONTEST_ASSERT(ok);
1853-
JSONTEST_ASSERT(reader.getFormattedErrorMessages().size() == 0);
1854-
JSONTEST_ASSERT(reader.getStructuredErrors().size() == 0);
1853+
JSONTEST_ASSERT(reader.getFormattedErrorMessages().empty());
1854+
JSONTEST_ASSERT(reader.getStructuredErrors().empty());
18551855
}
18561856

18571857
JSONTEST_FIXTURE(ReaderTest, parseWithNoErrorsTestingOffsets) {
@@ -1862,8 +1862,8 @@ JSONTEST_FIXTURE(ReaderTest, parseWithNoErrorsTestingOffsets) {
18621862
"null, \"false\" : false }",
18631863
root);
18641864
JSONTEST_ASSERT(ok);
1865-
JSONTEST_ASSERT(reader.getFormattedErrorMessages().size() == 0);
1866-
JSONTEST_ASSERT(reader.getStructuredErrors().size() == 0);
1865+
JSONTEST_ASSERT(reader.getFormattedErrorMessages().empty());
1866+
JSONTEST_ASSERT(reader.getStructuredErrors().empty());
18671867
JSONTEST_ASSERT(root["property"].getOffsetStart() == 15);
18681868
JSONTEST_ASSERT(root["property"].getOffsetLimit() == 34);
18691869
JSONTEST_ASSERT(root["property"][0].getOffsetStart() == 16);
@@ -1944,7 +1944,7 @@ JSONTEST_FIXTURE(CharReaderTest, parseWithNoErrors) {
19441944
char const doc[] = "{ \"property\" : \"value\" }";
19451945
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
19461946
JSONTEST_ASSERT(ok);
1947-
JSONTEST_ASSERT(errs.size() == 0);
1947+
JSONTEST_ASSERT(errs.empty());
19481948
delete reader;
19491949
}
19501950

@@ -1958,7 +1958,7 @@ JSONTEST_FIXTURE(CharReaderTest, parseWithNoErrorsTestingOffsets) {
19581958
"null, \"false\" : false }";
19591959
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
19601960
JSONTEST_ASSERT(ok);
1961-
JSONTEST_ASSERT(errs.size() == 0);
1961+
JSONTEST_ASSERT(errs.empty());
19621962
delete reader;
19631963
}
19641964

@@ -2014,7 +2014,7 @@ JSONTEST_FIXTURE(CharReaderTest, parseWithStackLimit) {
20142014
JSONCPP_STRING errs;
20152015
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
20162016
JSONTEST_ASSERT(ok);
2017-
JSONTEST_ASSERT(errs == "");
2017+
JSONTEST_ASSERT(errs.empty());
20182018
JSONTEST_ASSERT_EQUAL("value", root["property"]);
20192019
delete reader;
20202020
}
@@ -2061,7 +2061,7 @@ JSONTEST_FIXTURE(CharReaderFailIfExtraTest, issue164) {
20612061
JSONCPP_STRING errs;
20622062
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
20632063
JSONTEST_ASSERT(ok);
2064-
JSONTEST_ASSERT(errs == "");
2064+
JSONTEST_ASSERT(errs.empty());
20652065
JSONTEST_ASSERT_EQUAL("property", root);
20662066
delete reader;
20672067
}
@@ -2176,15 +2176,15 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
21762176
char const doc[] = "[]";
21772177
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
21782178
JSONTEST_ASSERT(ok);
2179-
JSONTEST_ASSERT(errs == "");
2179+
JSONTEST_ASSERT(errs.empty());
21802180
JSONTEST_ASSERT_EQUAL(0u, root.size());
21812181
JSONTEST_ASSERT_EQUAL(Json::arrayValue, root);
21822182
}
21832183
{
21842184
char const doc[] = "[null]";
21852185
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
21862186
JSONTEST_ASSERT(ok);
2187-
JSONTEST_ASSERT(errs == "");
2187+
JSONTEST_ASSERT(errs.empty());
21882188
JSONTEST_ASSERT_EQUAL(1u, root.size());
21892189
}
21902190
{
@@ -2212,7 +2212,7 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
22122212
char const doc[] = "[,null]";
22132213
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
22142214
JSONTEST_ASSERT(ok);
2215-
JSONTEST_ASSERT(errs == "");
2215+
JSONTEST_ASSERT(errs.empty());
22162216
JSONTEST_ASSERT_EQUAL(2u, root.size());
22172217
}
22182218
{
@@ -2240,7 +2240,7 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
22402240
char const doc[] = "[,,null]";
22412241
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
22422242
JSONTEST_ASSERT(ok);
2243-
JSONTEST_ASSERT(errs == "");
2243+
JSONTEST_ASSERT(errs.empty());
22442244
JSONTEST_ASSERT_EQUAL(3u, root.size());
22452245
}
22462246
{
@@ -2263,7 +2263,7 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
22632263
char const doc[] = "[,,,[]]";
22642264
bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
22652265
JSONTEST_ASSERT(ok);
2266-
JSONTEST_ASSERT(errs == "");
2266+
JSONTEST_ASSERT(errs.empty());
22672267
JSONTEST_ASSERT_EQUAL(4u, root.size());
22682268
JSONTEST_ASSERT_EQUAL(Json::arrayValue, root[3u]);
22692269
}

0 commit comments

Comments
 (0)