From 83fbc0a4f5ebce04a5c63c748f0061d4caab8ecb Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Sat, 27 Apr 2019 01:23:30 +0200 Subject: [PATCH] Use shrink_to_fit() to save memory space --- ChangeLog | 1 + src/ffiledialog.cpp | 1 + src/flistbox.cpp | 1 + src/fmenulist.cpp | 1 + src/fobject.cpp | 1 + src/fstatusbar.cpp | 1 + src/ftextview.cpp | 1 + src/include/final/ftermbuffer.h | 5 ++++- 8 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7d0d9eae..3edaf965 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 2019-04-27 Markus Gans * Add the reserve() method to FListBox to increase the capacity of the list + * Use shrink_to_fit() to save memory space 2019-03-24 Markus Gans * Add a "scroll view" chapter to the first steps document diff --git a/src/ffiledialog.cpp b/src/ffiledialog.cpp index 7ebe99ab..f8666e83 100644 --- a/src/ffiledialog.cpp +++ b/src/ffiledialog.cpp @@ -444,6 +444,7 @@ void FFileDialog::clear() std::free (entry.name); dir_entries.clear(); + dir_entries.shrink_to_fit(); } //---------------------------------------------------------------------- diff --git a/src/flistbox.cpp b/src/flistbox.cpp index 51eb7490..ef8438ad 100644 --- a/src/flistbox.cpp +++ b/src/flistbox.cpp @@ -286,6 +286,7 @@ void FListBox::clear() { std::size_t size; itemlist.clear(); + itemlist.shrink_to_fit(); current = 0; xoffset = 0; yoffset = 0; diff --git a/src/fmenulist.cpp b/src/fmenulist.cpp index 067e609a..6836272b 100644 --- a/src/fmenulist.cpp +++ b/src/fmenulist.cpp @@ -93,6 +93,7 @@ void FMenuList::remove (int pos) void FMenuList::clear() { item_list.clear(); + item_list.shrink_to_fit(); } //---------------------------------------------------------------------- diff --git a/src/fobject.cpp b/src/fobject.cpp index b9da7b89..ed969f20 100644 --- a/src/fobject.cpp +++ b/src/fobject.cpp @@ -359,6 +359,7 @@ bool FObject::delAllTimer() timer_modify_lock = true; timer_list->clear(); + timer_list->shrink_to_fit(); timer_modify_lock = false; return true; } diff --git a/src/fstatusbar.cpp b/src/fstatusbar.cpp index 2cdaf1c7..f62a704a 100644 --- a/src/fstatusbar.cpp +++ b/src/fstatusbar.cpp @@ -306,6 +306,7 @@ void FStatusBar::remove (int pos) void FStatusBar::clear() { key_list.clear(); + key_list.shrink_to_fit(); } //---------------------------------------------------------------------- diff --git a/src/ftextview.cpp b/src/ftextview.cpp index 15a24a43..97259c57 100644 --- a/src/ftextview.cpp +++ b/src/ftextview.cpp @@ -274,6 +274,7 @@ void FTextView::clear() { std::size_t size; data.clear(); + data.shrink_to_fit(); xoffset = 0; yoffset = 0; maxLineWidth = 0; diff --git a/src/include/final/ftermbuffer.h b/src/include/final/ftermbuffer.h index e2455838..9005e54a 100644 --- a/src/include/final/ftermbuffer.h +++ b/src/include/final/ftermbuffer.h @@ -151,7 +151,10 @@ inline bool FTermBuffer::isEmpty() const //---------------------------------------------------------------------- inline void FTermBuffer::clear() -{ data.clear(); } +{ + data.clear(); + data.shrink_to_fit(); +} //---------------------------------------------------------------------- inline FTermBuffer& FTermBuffer::write()