浏览代码

resolve compiler warnings (#1246)

* resolve compiler warnings

- check `WSAStartup` return.
- `const` is not suitable for `std::move`.

* resolve compiler warnings

- bool startup => bool is_valid_.
- remove `const` not removed.
greenfish 3 年之前
父节点
当前提交
5d87cc0558
共有 1 个文件被更改,包括 8 次插入6 次删除
  1. 8 6
      httplib.h

+ 8 - 6
httplib.h

@@ -974,7 +974,7 @@ public:
 
   void stop();
 
-  void set_hostname_addr_map(const std::map<std::string, std::string> addr_map);
+  void set_hostname_addr_map(std::map<std::string, std::string> addr_map);
 
   void set_default_headers(Headers headers);
 
@@ -1309,7 +1309,7 @@ public:
 
   void stop();
 
-  void set_hostname_addr_map(const std::map<std::string, std::string> addr_map);
+  void set_hostname_addr_map(std::map<std::string, std::string> addr_map);
 
   void set_default_headers(Headers headers);
 
@@ -4231,10 +4231,12 @@ class WSInit {
 public:
   WSInit() {
     WSADATA wsaData;
-    WSAStartup(0x0002, &wsaData);
+    if (WSAStartup(0x0002, &wsaData) == 0) is_valid_ = true;
   }
 
-  ~WSInit() { WSACleanup(); }
+  ~WSInit() { if (is_valid_) WSACleanup(); }
+
+  bool is_valid_ = false;
 };
 
 static WSInit wsinit_;
@@ -6969,7 +6971,7 @@ inline void ClientImpl::set_follow_location(bool on) { follow_location_ = on; }
 inline void ClientImpl::set_url_encode(bool on) { url_encode_ = on; }
 
 inline void ClientImpl::set_hostname_addr_map(
-    const std::map<std::string, std::string> addr_map) {
+    std::map<std::string, std::string> addr_map) {
   addr_map_ = std::move(addr_map);
 }
 
@@ -8095,7 +8097,7 @@ inline size_t Client::is_socket_open() const { return cli_->is_socket_open(); }
 inline void Client::stop() { cli_->stop(); }
 
 inline void Client::set_hostname_addr_map(
-    const std::map<std::string, std::string> addr_map) {
+    std::map<std::string, std::string> addr_map) {
   cli_->set_hostname_addr_map(std::move(addr_map));
 }