diff --git a/libserial/serial.cpp b/libserial/serial.cpp index 3d648e1..b456321 100644 --- a/libserial/serial.cpp +++ b/libserial/serial.cpp @@ -20,7 +20,12 @@ public: error_ = new char[1024]; std::memset(error_, 0x0, 1024); } - ~CSerialOprImp() { delete[] error_; } + ~CSerialOprImp() + { + close(); + delete port_; + delete[] error_; + } public: void set_port(const char* port) @@ -58,7 +63,7 @@ public: boost::system::error_code write_ec; std::size_t ret = boost::asio::write(*port_, boost::asio::buffer(data, len), write_ec); - int send_size = static_cast(ret); + int send_size = static_cast(ret); return send_size; }