diff options
author | Iru Cai <mytbk920423@gmail.com> | 2020-06-06 10:16:37 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2020-06-06 10:25:48 +0800 |
commit | 0dc74c8b08350a24ed1ced62286d24b3d6f8f743 (patch) | |
tree | cbc96f89fc78e496caa7ce18022411b6c5e494b0 | |
parent | a6d45c47ddde8c46aed22d417059b7d68437c2a8 (diff) | |
download | fqterm-0dc74c8b08350a24ed1ced62286d24b3d6f8f743.tar.xz |
fix some memory leaks
-rw-r--r-- | src/fqterm/fqterm_screen.cpp | 3 | ||||
-rw-r--r-- | src/protocol/fqterm_ssh_socket.cpp | 1 | ||||
-rw-r--r-- | src/terminal/internal/fqterm_zmodem.cpp | 6 | ||||
-rw-r--r-- | src/ui/imageviewer/imageviewer_origin.cpp | 34 | ||||
-rw-r--r-- | src/ui/imageviewer/imageviewer_origin.h | 4 |
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_; |