diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2015-11-15 22:57:43 +0100 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-11-16 09:56:46 +0000 |
commit | 2773596970c362a6d81c7e44311781590074c43f (patch) | |
tree | 56bc2bad99653c9967b9589ef8610b1f82f153ee /ui/qt/sequence_dialog.h | |
parent | 442314e8b2bdc4ea921bd7136aadb851652f4ce7 (diff) |
Qt: add a reference counter to sequence analysis info
Increment the reference counter each time a flow sequence window is opened.
Free seq_analysis_info_t structure once the last flow sequence / VoIP calls / SIP flow window is closed.
Bug: 11712
Change-Id: I20fcb922b0516417d4bd74cdf75475dcb31f8b90
Reviewed-on: https://code.wireshark.org/review/11851
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'ui/qt/sequence_dialog.h')
-rw-r--r-- | ui/qt/sequence_dialog.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ui/qt/sequence_dialog.h b/ui/qt/sequence_dialog.h index f87bd2bd66..489ac3c026 100644 --- a/ui/qt/sequence_dialog.h +++ b/ui/qt/sequence_dialog.h @@ -43,12 +43,25 @@ class SequenceDialog; class SequenceDiagram; +class SequenceInfo +{ +public: + SequenceInfo(seq_analysis_info_t *sainfo = NULL); + seq_analysis_info_t * sainfo() { return sainfo_;} + void ref() { count_++; } + void unref() { if (--count_ == 0) delete this; } +private: + ~SequenceInfo(); + seq_analysis_info_t *sainfo_; + unsigned int count_; +}; + class SequenceDialog : public WiresharkDialog { Q_OBJECT public: - explicit SequenceDialog(QWidget &parent, CaptureFile &cf, seq_analysis_info_t *sainfo = NULL); + explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL); ~SequenceDialog(); signals: @@ -89,7 +102,7 @@ private slots: private: Ui::SequenceDialog *ui; SequenceDiagram *seq_diagram_; - seq_analysis_info_t *sainfo_; + SequenceInfo *info_; int num_items_; guint32 packet_num_; double one_em_; |