summaryrefslogtreecommitdiff
path: root/src/Fl_Tree_Item_Array.cxx
diff options
context:
space:
mode:
authorGreg Ercolano <erco@seriss.com>2011-12-25 01:10:45 +0000
committerGreg Ercolano <erco@seriss.com>2011-12-25 01:10:45 +0000
commitfc135a498bbe60b7b33db0282f82143336e5149b (patch)
treef6ff9bcaf5637352ab6cf8d53fdbd214e4db6417 /src/Fl_Tree_Item_Array.cxx
parenta0be94eebe7dcb10681c3496edde0d41660ee0c4 (diff)
Optimizations for very large Fl_Tree's
(Adding 60k items took forever, and drawing them caused wraparound drawing issues and scrolling slowness) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9216 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Tree_Item_Array.cxx')
-rw-r--r--src/Fl_Tree_Item_Array.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/Fl_Tree_Item_Array.cxx b/src/Fl_Tree_Item_Array.cxx
index 6f338a70e..358306a27 100644
--- a/src/Fl_Tree_Item_Array.cxx
+++ b/src/Fl_Tree_Item_Array.cxx
@@ -79,6 +79,7 @@ void Fl_Tree_Item_Array::clear() {
void Fl_Tree_Item_Array::enlarge(int count) {
int newtotal = _total + count; // new total
if ( newtotal >= _size ) { // more than we have allocated?
+ if ( (newtotal/150) > _chunksize ) _chunksize *= 10;
// Increase size of array
int newsize = _size + _chunksize;
Fl_Tree_Item **newitems = (Fl_Tree_Item**)malloc(newsize * sizeof(Fl_Tree_Item*));