summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2020-06-06 10:16:37 +0800
committerIru Cai <mytbk920423@gmail.com>2020-06-06 10:25:48 +0800
commit0dc74c8b08350a24ed1ced62286d24b3d6f8f743 (patch)
treecbc96f89fc78e496caa7ce18022411b6c5e494b0
parenta6d45c47ddde8c46aed22d417059b7d68437c2a8 (diff)
downloadfqterm-0dc74c8b08350a24ed1ced62286d24b3d6f8f743.tar.xz
fix some memory leaks
-rw-r--r--src/fqterm/fqterm_screen.cpp3
-rw-r--r--src/protocol/fqterm_ssh_socket.cpp1
-rw-r--r--src/terminal/internal/fqterm_zmodem.cpp6
-rw-r--r--src/ui/imageviewer/imageviewer_origin.cpp34
-rw-r--r--src/ui/imageviewer/imageviewer_origin.h4
5 files changed, 27 insertions, 21 deletions
diff --git a/src/fqterm/fqterm_screen.cpp b/src/fqterm/fqterm_screen.cpp
index de51381..897a928 100644
--- a/src/fqterm/fqterm_screen.cpp
+++ b/src/fqterm/fqterm_screen.cpp
@@ -142,6 +142,9 @@ FQTermScreen::~FQTermScreen() {
delete preedit_line_;
delete tmp_im_query_;
+
+ delete englishFont_;
+ delete nonEnglishFont_;
}
bool FQTermScreen::event(QEvent *e) {
diff --git a/src/protocol/fqterm_ssh_socket.cpp b/src/protocol/fqterm_ssh_socket.cpp
index e273029..12cecbc 100644
--- a/src/protocol/fqterm_ssh_socket.cpp
+++ b/src/protocol/fqterm_ssh_socket.cpp
@@ -203,6 +203,7 @@ void FQTermSSHSocket::kexOK()
#ifdef WIN32
free(hosts_file);
#endif
+ free(hosts);
}
key_exchanger_->hostKeyHash(conn_info.ssh_proto_info.hash);
diff --git a/src/terminal/internal/fqterm_zmodem.cpp b/src/terminal/internal/fqterm_zmodem.cpp
index 93f698d..f67cd4b 100644
--- a/src/terminal/internal/fqterm_zmodem.cpp
+++ b/src/terminal/internal/fqterm_zmodem.cpp
@@ -608,7 +608,11 @@ FQTermZmodem::FQTermZmodem(FQTermConfig *config, FQTermTelnet *netinterface, int
}
-FQTermZmodem::~FQTermZmodem(){}
+FQTermZmodem::~FQTermZmodem()
+{
+ if (info.buffer != NULL)
+ free(info.buffer);
+}
int FQTermZmodem::ZmodemTInit(ZModem *info) {
int err;
diff --git a/src/ui/imageviewer/imageviewer_origin.cpp b/src/ui/imageviewer/imageviewer_origin.cpp
index 6e3ceae..7f0e88f 100644
--- a/src/ui/imageviewer/imageviewer_origin.cpp
+++ b/src/ui/imageviewer/imageviewer_origin.cpp
@@ -32,7 +32,6 @@
#include "fqterm_canvas.h"
#include "fqterm_config.h"
-#include "fqterm_exif_extractor.h"
#include "fqterm_filedialog.h"
#include "fqterm_path.h"
#include "fqterm_trace.h"
@@ -47,7 +46,7 @@ namespace FQTerm {
if (!isHidden())
canvas_->hide();
- QString exifInfo = QString::fromStdString(exifExtractor_->extractExifInfo(model_->filePath(tree_->currentIndex()).toLocal8Bit().data()));
+ QString exifInfo = QString::fromStdString(exifExtractor_.extractExifInfo(model_->filePath(tree_->currentIndex()).toLocal8Bit().data()));
bool resized = false;
if (exifInfo != "") {
@@ -96,7 +95,6 @@ namespace FQTerm {
setWindowTitle(tr("FQTerm Image Viewer"));
ItemDelegate* itemDelegate = new ItemDelegate;
- exifExtractor_ = new ExifExtractor;
exifTable_ = new ExifTable(this);
exifTable_->setTextFormat(Qt::RichText);
exifTable_->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
@@ -237,23 +235,23 @@ namespace FQTerm {
void FQTermImageOrigin::showFullExifInfo() {
- QString exifInfo = QString::fromStdString(exifExtractor_->extractExifInfo(model_->filePath(tree_->currentIndex()).toLocal8Bit().data()));
+ QString exifInfo = QString::fromStdString(exifExtractor_.extractExifInfo(model_->filePath(tree_->currentIndex()).toLocal8Bit().data()));
QString comment;
- if ((*exifExtractor_)["UserComment"].length() > 8) {
+ if (exifExtractor_["UserComment"].length() > 8) {
- QString commentEncoding = QString::fromStdString((*exifExtractor_)["UserComment"].substr(0, 8));
+ QString commentEncoding = QString::fromStdString(exifExtractor_["UserComment"].substr(0, 8));
if (commentEncoding.startsWith("UNICODE")) {
//UTF-16
QTextCodec* c = QTextCodec::codecForName("UTF-16");
- comment = c->toUnicode((*exifExtractor_)["UserComment"].substr(8).c_str());
+ comment = c->toUnicode(exifExtractor_["UserComment"].substr(8).c_str());
} else if (commentEncoding.startsWith("JIS")) {
//JIS X 0208
QTextCodec* c = QTextCodec::codecForName("JIS X 0208");
- comment = c->toUnicode((*exifExtractor_)["UserComment"].substr(8).c_str());
+ comment = c->toUnicode(exifExtractor_["UserComment"].substr(8).c_str());
} else {
- comment = QString::fromStdString((*exifExtractor_)["UserComment"].substr(8));
+ comment = QString::fromStdString(exifExtractor_["UserComment"].substr(8));
}
}
@@ -294,17 +292,17 @@ namespace FQTerm {
exifTable_->clear();
QString exifInfoToShow = "<table border=\"1\"><tr><td>"
- + tr("Model") + " : " + QString::fromStdString((*exifExtractor_)["Model"]) + "</td><td>"
- + QString::fromStdString((*exifExtractor_)["DateTime"]) + "</td><td>"
- + QString::fromStdString((*exifExtractor_)["Flash"]) + "</td>"
+ + tr("Model") + " : " + QString::fromStdString(exifExtractor_["Model"]) + "</td><td>"
+ + QString::fromStdString(exifExtractor_["DateTime"]) + "</td><td>"
+ + QString::fromStdString(exifExtractor_["Flash"]) + "</td>"
+ "</tr><tr><td>"
- + tr("ExposureTime") + " : " + QString::fromStdString((*exifExtractor_)["ExposureTime"]) + "</td><td>"
- + tr("FNumber") + " : " + QString::fromStdString((*exifExtractor_)["FNumber"]) + "</td><td>"
- + tr("ISO") + " : " + QString::fromStdString((*exifExtractor_)["ISOSpeedRatings"]) + "</td>"
+ + tr("ExposureTime") + " : " + QString::fromStdString(exifExtractor_["ExposureTime"]) + "</td><td>"
+ + tr("FNumber") + " : " + QString::fromStdString(exifExtractor_["FNumber"]) + "</td><td>"
+ + tr("ISO") + " : " + QString::fromStdString(exifExtractor_["ISOSpeedRatings"]) + "</td>"
+ "</tr><tr><td>"
- + tr("FocalLength") + " : " + QString::fromStdString((*exifExtractor_)["FocalLength"]) + "</td><td>"
- + tr("MeteringMode") + " : " + QString::fromStdString((*exifExtractor_)["MeteringMode"]) + "</td><td>"
- + tr("ExposureBias") + " : " + QString::fromStdString((*exifExtractor_)["ExposureBiasValue"]) + "</td></tr></tabel>";
+ + tr("FocalLength") + " : " + QString::fromStdString(exifExtractor_["FocalLength"]) + "</td><td>"
+ + tr("MeteringMode") + " : " + QString::fromStdString(exifExtractor_["MeteringMode"]) + "</td><td>"
+ + tr("ExposureBias") + " : " + QString::fromStdString(exifExtractor_["ExposureBiasValue"]) + "</td></tr></tabel>";
exifTable_->setText(exifInfoToShow);
if (!isHidden() && exifTable_->isHidden()) {
diff --git a/src/ui/imageviewer/imageviewer_origin.h b/src/ui/imageviewer/imageviewer_origin.h
index 15d9c62..56fd262 100644
--- a/src/ui/imageviewer/imageviewer_origin.h
+++ b/src/ui/imageviewer/imageviewer_origin.h
@@ -23,12 +23,12 @@
#include "pictureflow.h"
#include "fqtermimage.h"
+#include "fqterm_exif_extractor.h"
namespace FQTerm
{
class FQTermCanvas;
- class ExifExtractor;
class ItemDelegate : public QItemDelegate {
public:
@@ -97,7 +97,7 @@ namespace FQTerm
QMenuBar* menuBar_;
QComboBox* comboBox_;
FQTermConfig* config_;
- ExifExtractor* exifExtractor_;
+ ExifExtractor exifExtractor_;
ExifTable* exifTable_;
QGridLayout* layout_;
bool isExifTableShown_;