aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CellBuffer.cxx3
-rw-r--r--src/CellBuffer.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/CellBuffer.cxx b/src/CellBuffer.cxx
index b67da81c9..420dee6ff 100644
--- a/src/CellBuffer.cxx
+++ b/src/CellBuffer.cxx
@@ -125,6 +125,7 @@ LineVector::LineVector() {
levels = 0;
sizeLevels = 0;
handleCurrent = 1;
+ growSize = 1000;
Init();
}
@@ -199,6 +200,8 @@ void LineVector::ClearLevels() {
void LineVector::InsertValue(int pos, int value) {
//Platform::DebugPrintf("InsertValue[%d] = %d\n", pos, value);
if ((lines + 2) >= size) {
+ if (growSize * 6 < size)
+ growSize *= 2;
Expand(size + growSize);
if (levels) {
ExpandLevels(size + growSize);
diff --git a/src/CellBuffer.h b/src/CellBuffer.h
index b5c90f57a..5cfcbfe1f 100644
--- a/src/CellBuffer.h
+++ b/src/CellBuffer.h
@@ -53,7 +53,7 @@ struct LineData {
*/
class LineVector {
public:
- enum { growSize = 4000 };
+ int growSize;
int lines;
LineData *linesData;
int size;