Skip to content

Commit 9c66a3d

Browse files
committed
cppcheck fixes
1 parent 75e15c8 commit 9c66a3d

File tree

6 files changed

+53
-29
lines changed

6 files changed

+53
-29
lines changed

.github/workflows/cppcheck.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
- name: "[Release g++] Build"
1818
env:
1919
CPR_ENABLE_CPPCHECK: ON
20+
# Avoid parallel runs so only the resulting error file is not being written by multiple processes at the same time.
21+
CMAKE_BUILD_PARALLEL_LEVEL: 1
2022
uses: ashutoshvarma/action-cmake-build@master
2123
with:
2224
build-dir: ${{github.workspace}}/build

cppcheck-suppressions.xml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,33 @@
55
<id>*</id>
66
<fileName>*/build/*</fileName>
77
</suppress>
8-
9-
<!-- False positive? -->
8+
<suppress>
9+
<id>CheckLevelMaxBranches</id>
10+
</suppress>
1011
<suppress>
1112
<id>noExplicitConstructor</id>
1213
</suppress>
14+
<suppress>
15+
<id>knownConditionTrueFalse</id>
16+
<fileName>*/include/cpr/async_wrapper.h</fileName>
17+
</suppress>
18+
<suppress>
19+
<id>y2038-unsafe-call</id>
20+
<fileName>*/cpr/cookies.cpp</fileName>
21+
</suppress>
22+
<!-- Known Limitation/Bug: https://github.com/libcpr/cpr/issues/1174 -->
23+
<suppress>
24+
<id>y2038-unsafe-call</id>
25+
<fileName>*/include/cpr/low_speed.h</fileName>
26+
</suppress>
27+
<suppress>
28+
<id>normalCheckLevelMaxBranches</id>
29+
</suppress>
30+
<suppress>
31+
<id>constParameterPointer</id>
32+
<fileName>*/cpr/util.cpp</fileName>
33+
</suppress>
34+
<suppress>
35+
<id>postfixOperator</id>
36+
</suppress>
1337
</suppressions>

cpr/cookies.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@
88
#include <string_view>
99

1010
namespace cpr {
11-
const std::string Cookie::GetDomain() const {
11+
const std::string& Cookie::GetDomain() const {
1212
return domain_;
1313
}
1414

1515
bool Cookie::IsIncludingSubdomains() const {
1616
return includeSubdomains_;
1717
}
1818

19-
const std::string Cookie::GetPath() const {
19+
const std::string& Cookie::GetPath() const {
2020
return path_;
2121
}
2222

2323
bool Cookie::IsHttpsOnly() const {
2424
return httpsOnly_;
2525
}
2626

27-
const std::chrono::system_clock::time_point Cookie::GetExpires() const {
27+
std::chrono::system_clock::time_point Cookie::GetExpires() const {
2828
return expires_;
2929
}
3030

31-
const std::string Cookie::GetExpiresString() const {
31+
std::string Cookie::GetExpiresString() const {
3232
std::stringstream ss;
3333
std::tm tm{};
3434
const std::time_t tt = std::chrono::system_clock::to_time_t(expires_);
@@ -42,15 +42,15 @@ const std::string Cookie::GetExpiresString() const {
4242
return ss.str();
4343
}
4444

45-
const std::string Cookie::GetName() const {
45+
const std::string& Cookie::GetName() const {
4646
return name_;
4747
}
4848

49-
const std::string Cookie::GetValue() const {
49+
const std::string& Cookie::GetValue() const {
5050
return value_;
5151
}
5252

53-
const std::string Cookies::GetEncoded(const CurlHolder& holder) const {
53+
std::string Cookies::GetEncoded(const CurlHolder& holder) const {
5454
std::stringstream stream;
5555
for (const cpr::Cookie& item : cookies_) {
5656
// Depending on if encoding is set to "true", we will URL-encode cookies

cpr/session.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "cpr/session.h"
22

3+
#include <algorithm>
34
#include <array>
45
#include <atomic>
56
#include <cassert>
@@ -184,8 +185,8 @@ void Session::prepareCommonShared() {
184185
// handle NO_PROXY override passed through Proxies object
185186
// Example: Proxies{"no_proxy": ""} will override environment variable definition with an empty list
186187
const std::array<std::string, 2> no_proxy{"no_proxy", "NO_PROXY"};
187-
for (const auto& item : no_proxy) {
188-
if (proxies_.has(item)) {
188+
for (const auto& item : no_proxy) { // cppcheck-suppress useStlAlgorithm
189+
if (proxies_.has(item)) { // cppcheck-suppress useStlAlgorithm
189190
curl_easy_setopt(curl_->handle, CURLOPT_NOPROXY, proxies_[item].c_str());
190191
break;
191192
}
@@ -449,7 +450,7 @@ void Session::SetBody(Body&& body) {
449450

450451
void Session::SetLowSpeed(const LowSpeed& low_speed) {
451452
curl_easy_setopt(curl_->handle, CURLOPT_LOW_SPEED_LIMIT, low_speed.limit);
452-
curl_easy_setopt(curl_->handle, CURLOPT_LOW_SPEED_TIME, low_speed.time);
453+
curl_easy_setopt(curl_->handle, CURLOPT_LOW_SPEED_TIME, low_speed.time); // cppcheck-suppress y2038-unsafe-call
453454
}
454455

455456
void Session::SetVerifySsl(const VerifySsl& verify) {

cpr/threadpool.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,7 @@ bool ThreadPool::CreateThread() {
111111
if (task) {
112112
task();
113113
++idle_thread_num;
114-
if (initialRun) {
115-
initialRun = false;
116-
}
114+
initialRun = false;
117115
}
118116
}
119117
});

include/cpr/cookies.h

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "cpr/curlholder.h"
55
#include <chrono>
66
#include <initializer_list>
7-
#include <sstream>
87
#include <string>
98
#include <vector>
109

@@ -24,14 +23,14 @@ class Cookie {
2423
* So we fall back to std::chrono::system_clock::from_time_t(0) for the minimum value here.
2524
**/
2625
Cookie(const std::string& name, const std::string& value, const std::string& domain = "", bool p_isIncludingSubdomains = false, const std::string& path = "/", bool p_isHttpsOnly = false, std::chrono::system_clock::time_point expires = std::chrono::system_clock::from_time_t(0)) : name_{name}, value_{value}, domain_{domain}, includeSubdomains_{p_isIncludingSubdomains}, path_{path}, httpsOnly_{p_isHttpsOnly}, expires_{expires} {}
27-
const std::string GetDomain() const;
28-
bool IsIncludingSubdomains() const;
29-
const std::string GetPath() const;
30-
bool IsHttpsOnly() const;
31-
const std::chrono::system_clock::time_point GetExpires() const;
32-
const std::string GetExpiresString() const;
33-
const std::string GetName() const;
34-
const std::string GetValue() const;
26+
[[nodiscard]] const std::string& GetDomain() const;
27+
[[nodiscard]] bool IsIncludingSubdomains() const;
28+
[[nodiscard]] const std::string& GetPath() const;
29+
[[nodiscard]] bool IsHttpsOnly() const;
30+
[[nodiscard]] std::chrono::system_clock::time_point GetExpires() const;
31+
[[nodiscard]] std::string GetExpiresString() const;
32+
[[nodiscard]] const std::string& GetName() const;
33+
[[nodiscard]] const std::string& GetValue() const;
3534

3635
private:
3736
std::string name_;
@@ -68,17 +67,17 @@ class Cookies {
6867
Cookies(const cpr::Cookie& cookie, bool p_encode = true) : encode{p_encode}, cookies_{cookie} {}
6968

7069
cpr::Cookie& operator[](size_t pos);
71-
const std::string GetEncoded(const CurlHolder& holder) const;
70+
[[nodiscard]] std::string GetEncoded(const CurlHolder& holder) const;
7271

7372
using iterator = std::vector<cpr::Cookie>::iterator;
7473
using const_iterator = std::vector<cpr::Cookie>::const_iterator;
7574

7675
iterator begin();
7776
iterator end();
78-
const_iterator begin() const;
79-
const_iterator end() const;
80-
const_iterator cbegin() const;
81-
const_iterator cend() const;
77+
[[nodiscard]] const_iterator begin() const;
78+
[[nodiscard]] const_iterator end() const;
79+
[[nodiscard]] const_iterator cbegin() const;
80+
[[nodiscard]] const_iterator cend() const;
8281
void emplace_back(const Cookie& str);
8382
[[nodiscard]] bool empty() const;
8483
void push_back(const Cookie& str);

0 commit comments

Comments
 (0)