diff --git a/libj2dplot/code/J2DPlotFunctionBase.cpp b/libj2dplot/code/J2DPlotFunctionBase.cpp index 04f4870fe..066d39227 100644 --- a/libj2dplot/code/J2DPlotFunctionBase.cpp +++ b/libj2dplot/code/J2DPlotFunctionBase.cpp @@ -12,6 +12,8 @@ #include #include +const JSize kDefSampleCount = 100; // # of points for approximating y range + /********************************************************************************* Constructor @@ -31,7 +33,7 @@ J2DPlotFunctionBase::J2DPlotFunctionBase itsXMin = JMin(xMin, xMax); itsXMax = JMax(xMin, xMax); - itsValues = jnew JArray(7); + itsValues = jnew JArray(kDefSampleCount); ListenTo(itsPlot); } @@ -109,8 +111,7 @@ J2DPlotFunctionBase::GetYRange const { const JSize pointCount = itsPlot->GetSmoothSteps(); - JArray list; - list.SetMinSize(pointCount); + JArray list(pointCount); EvaluateFunction(xMin, xMax, xLinear, pointCount, &list); *yMin = *yMax = 0.0; diff --git a/libj2dplot/code/J2DVectorData.cpp b/libj2dplot/code/J2DVectorData.cpp index 7c92eec8a..bd9548036 100644 --- a/libj2dplot/code/J2DVectorData.cpp +++ b/libj2dplot/code/J2DVectorData.cpp @@ -11,6 +11,8 @@ #include #include +const JSize kDefSampleCount = 100; + /********************************************************************************* Constructor function (static) @@ -69,10 +71,10 @@ J2DVectorData::J2DVectorData() { J2DVectorDataX(); - itsXData = jnew JArray(7); - itsYData = jnew JArray(7); - itsVXData = jnew JArray(7); - itsVYData = jnew JArray(7); + itsXData = jnew JArray(kDefSampleCount); + itsYData = jnew JArray(kDefSampleCount); + itsVXData = jnew JArray(kDefSampleCount); + itsVYData = jnew JArray(kDefSampleCount); itsIsListeningFlag = false; } diff --git a/libj2dplot/code/JX2DCurveNameList.cpp b/libj2dplot/code/JX2DCurveNameList.cpp index c0a2c4cb5..d69fec5ca 100644 --- a/libj2dplot/code/JX2DCurveNameList.cpp +++ b/libj2dplot/code/JX2DCurveNameList.cpp @@ -54,7 +54,7 @@ JX2DCurveNameList::JX2DCurveNameList const JSize count = curveInfo.GetItemCount(); - itsNameList = jnew JPtrArray(JPtrArrayT::kForgetAll); + itsNameList = jnew JPtrArray(JPtrArrayT::kForgetAll, count); AppendRows(count); for (JIndex i=1; i<=count; i++) diff --git a/libjcore/code/JAliasArray.tmpl b/libjcore/code/JAliasArray.tmpl index cc893ce55..5f6e4e828 100644 --- a/libjcore/code/JAliasArray.tmpl +++ b/libjcore/code/JAliasArray.tmpl @@ -44,7 +44,8 @@ JAliasArray::JAliasArray { assert( itsData != nullptr ); - itsIndexArray = jnew JArray(data->GetMinLgSize()); + itsIndexArray = jnew JArray; + itsIndexArray->SetMinLgSize(data->GetMinLgSize()); itsIndexArray->SetSortOrder(order); SetCompareFunction(compareFn); diff --git a/libjcore/code/JArray.h b/libjcore/code/JArray.h index fd18e5f95..d93de691f 100644 --- a/libjcore/code/JArray.h +++ b/libjcore/code/JArray.h @@ -18,7 +18,7 @@ class JArray : public JList { public: - JArray(const JSize minLgSize = 0); + JArray(const JSize minSize = 0); JArray(const JArray& source); JArray(JArray&& dyingSource) noexcept; diff --git a/libjcore/code/JArray.tmpl b/libjcore/code/JArray.tmpl index ad2d335de..a0f0dedd0 100644 --- a/libjcore/code/JArray.tmpl +++ b/libjcore/code/JArray.tmpl @@ -25,6 +25,7 @@ #include "JArray.h" #include "JMinMax.h" #include "jMath.h" +#include #include // for memcpy,memmove #include // for qsort // we are included by jAssert.h @@ -38,7 +39,7 @@ inline JSize jArrayLgToSize(const JSize lgSize) inline JSize jArraySizeToLg(const JSize count) { - return JLCeil(std::log2(count+1)); + return std::bit_width(count); } /****************************************************************************** @@ -49,15 +50,13 @@ inline JSize jArraySizeToLg(const JSize count) template JArray::JArray ( - const JSize minLgSize + const JSize minSize ) : JList(), - itsLgSize(JMax(kJArrayDefaultMinLgSize, minLgSize)), + itsLgSize(JMax(kJArrayDefaultMinLgSize, jArraySizeToLg(minSize))), itsMinLgSize(itsLgSize) { - assert( itsMinLgSize < 12 ); - itsItems = jnew T [ jArrayLgToSize(itsLgSize) ]; } @@ -275,7 +274,7 @@ JArray::CreateItem { assert( index > 0 ); - const JSize newLgSize = JMax(itsMinLgSize, jArraySizeToLg(this->GetItemCount())); + const JSize newLgSize = JMax(itsMinLgSize, jArraySizeToLg(this->GetItemCount() + 1)); if (newLgSize > itsLgSize) { ResizeMemoryAllocation(newLgSize); diff --git a/libjcore/code/JAsynchDataReceiver.h b/libjcore/code/JAsynchDataReceiver.h index e53989ccf..b42cd19ca 100644 --- a/libjcore/code/JAsynchDataReceiver.h +++ b/libjcore/code/JAsynchDataReceiver.h @@ -21,7 +21,7 @@ class JAsynchDataReceiverT enum { - kDefaultLgBufferSize = 16 + kDefaultBufferSize = 65536 }; public: diff --git a/libjcore/code/JAsynchDataReceiver.tmpl b/libjcore/code/JAsynchDataReceiver.tmpl index 0b511cf59..563852d41 100644 --- a/libjcore/code/JAsynchDataReceiver.tmpl +++ b/libjcore/code/JAsynchDataReceiver.tmpl @@ -25,7 +25,7 @@ template JAsynchDataReceiver::JAsynchDataReceiver() : ACE_Svc_Handler(), - itsByteBuffer(JAsynchDataReceiverT::kDefaultLgBufferSize) + itsByteBuffer(JAsynchDataReceiverT::kDefaultBufferSize) { JAsynchDataReceiverX(); } @@ -37,7 +37,7 @@ JAsynchDataReceiver::JAsynchDataReceiver ) : ACE_Svc_Handler(), - itsByteBuffer(JAsynchDataReceiverT::kDefaultLgBufferSize) + itsByteBuffer(JAsynchDataReceiverT::kDefaultBufferSize) { JAsynchDataReceiverX(); @@ -51,7 +51,7 @@ template void JAsynchDataReceiver::JAsynchDataReceiverX() { - itsRecvBufferSize = 1UL << JAsynchDataReceiverT::kDefaultLgBufferSize; + itsRecvBufferSize = JAsynchDataReceiverT::kDefaultBufferSize; itsRecvBuffer = jnew JUtf8Byte [ itsRecvBufferSize ]; itsCancelTaskFlag = nullptr; } diff --git a/libjcore/code/JCoreLibVersion.h b/libjcore/code/JCoreLibVersion.h index ce6aa633d..2de99095f 100644 --- a/libjcore/code/JCoreLibVersion.h +++ b/libjcore/code/JCoreLibVersion.h @@ -44,15 +44,8 @@ static const char* kCurrentJCoreLibVersionStr = "4.2.0"; // Fixed bug so original selection is fully cleared after undo/redo. // JArray: // Switched to an exponential reallocation model. -// *** Ctor now takes log2(minimum allocation size). // JStyledText: -// *** SetBlockSizes() now takes lgSize for both arguments. -// JRunArray: -// *** Ctor now takes log2(minimum allocation size). -// JPtrArray: -// *** Ctor now takes log2(minimum allocation size). -// JUtf8ByteBuffer: -// *** Ctor now takes log2(minimum allocation size). +// Renamed SetBlockSizes() to SetLgMinSizes(). // version 4.1.0: // diff --git a/libjcore/code/JMMArrayTable.cpp b/libjcore/code/JMMArrayTable.cpp index ef5c117ce..fd3b0111c 100644 --- a/libjcore/code/JMMArrayTable.cpp +++ b/libjcore/code/JMMArrayTable.cpp @@ -16,6 +16,8 @@ #include "JMMRecord.h" #include "jAssert.h" + const JSize blockSize = 5000; + /****************************************************************************** Constructor @@ -34,11 +36,11 @@ JMMArrayTable::JMMArrayTable itsDeletedCount(0), itsSnapshotID(0) { - itsAllocatedTable = jnew JArray(12); + itsAllocatedTable = jnew JArray(blockSize); if (recordDelete) { - itsDeletedTable = jnew JArray(12); + itsDeletedTable = jnew JArray(blockSize); } } diff --git a/libjcore/code/JMessageProtocol.tmpl b/libjcore/code/JMessageProtocol.tmpl index defd9f852..6eb068005 100644 --- a/libjcore/code/JMessageProtocol.tmpl +++ b/libjcore/code/JMessageProtocol.tmpl @@ -41,6 +41,7 @@ JMessageProtocol::JMessageProtocol ) : JNetworkProtocolBase(synchSend), + itsByteBuffer(JMessageProtocolT::kDefaultBufferSize), itsMessageList(JPtrArrayT::kDeleteAll), itsSeparatorStr(JString::kDoNotNormalize), itsDisconnectStr(JString::kDoNotNormalize) @@ -56,6 +57,7 @@ JMessageProtocol::JMessageProtocol ) : JNetworkProtocolBase(synchSend), + itsByteBuffer(JMessageProtocolT::kDefaultBufferSize), itsMessageList(JPtrArrayT::kDeleteAll), itsSeparatorStr(JString::kDoNotNormalize), itsDisconnectStr(JString::kDoNotNormalize) diff --git a/libjcore/code/JPtrArray.h b/libjcore/code/JPtrArray.h index b7a8a489f..139c76e43 100644 --- a/libjcore/code/JPtrArray.h +++ b/libjcore/code/JPtrArray.h @@ -22,7 +22,7 @@ class JPtrArray : public JArray { public: - JPtrArray(const JPtrArrayT::CleanUpAction action, const JSize minLgSize = 0); + JPtrArray(const JPtrArrayT::CleanUpAction action, const JSize minSize = 0); JPtrArray(const JPtrArray& source, const JPtrArrayT::CleanUpAction action); JPtrArray(JPtrArray&& dyingSource) noexcept; @@ -95,7 +95,7 @@ class JDCCPtrArray : public JPtrArray { public: - JDCCPtrArray(const JPtrArrayT::CleanUpAction action, const JSize minLgSize = 0); + JDCCPtrArray(const JPtrArrayT::CleanUpAction action, const JSize minSize = 0); JDCCPtrArray(const JPtrArray& source, const JPtrArrayT::CleanUpAction action); }; diff --git a/libjcore/code/JPtrArray.tmpl b/libjcore/code/JPtrArray.tmpl index 5e689ee9c..3b352ee4e 100644 --- a/libjcore/code/JPtrArray.tmpl +++ b/libjcore/code/JPtrArray.tmpl @@ -37,10 +37,10 @@ template JPtrArray::JPtrArray ( const JPtrArrayT::CleanUpAction action, - const JSize minLgSize + const JSize minSize ) : - JArray(minLgSize), + JArray(minSize), itsCleanUpAction(action) { } @@ -91,10 +91,10 @@ template JDCCPtrArray::JDCCPtrArray ( const JPtrArrayT::CleanUpAction action, - const JSize minLgSize + const JSize minSize ) : - JPtrArray(action, minLgSize) + JPtrArray(action, minSize) { } diff --git a/libjcore/code/JRunArray.h b/libjcore/code/JRunArray.h index 14457cac9..62b235a7a 100644 --- a/libjcore/code/JRunArray.h +++ b/libjcore/code/JRunArray.h @@ -45,7 +45,7 @@ class JRunArray : public JList public: - JRunArray(const JSize minLgSize = 0); + JRunArray(const JSize minSize = 0); JRunArray(const JRunArray& source); JRunArray(const JRunArray& source, const JIndexRange& range); diff --git a/libjcore/code/JRunArray.tmpl b/libjcore/code/JRunArray.tmpl index 34d5a5e1c..be7335d99 100644 --- a/libjcore/code/JRunArray.tmpl +++ b/libjcore/code/JRunArray.tmpl @@ -36,12 +36,12 @@ template JRunArray::JRunArray ( - const JSize minLgSize + const JSize minSize ) : JList() { - itsRuns = jnew JArray< JRunArrayItem >(minLgSize); + itsRuns = jnew JArray< JRunArrayItem >(minSize); } /****************************************************************************** @@ -67,7 +67,8 @@ JRunArray::JRunArray const JIndexRange& range ) { - itsRuns = jnew JArray< JRunArrayItem >(source.itsRuns->GetMinLgSize()); + itsRuns = jnew JArray< JRunArrayItem >; + itsRuns->SetMinLgSize(source.itsRuns->GetMinLgSize()); JIndex runIndex = 1, firstIndexInRun = 1; IteratorInsertSlice(1, source, range, &runIndex, &firstIndexInRun); diff --git a/libjcore/code/JSTStyler.cpp b/libjcore/code/JSTStyler.cpp index 7d9f759f1..44624b7a2 100644 --- a/libjcore/code/JSTStyler.cpp +++ b/libjcore/code/JSTStyler.cpp @@ -62,7 +62,7 @@ using TextCount = JStyledText::TextCount; using TextRange = JStyledText::TextRange; const JSize kDecimationFactor = 50; -const JSize kMinLgListSize = 7; +const JSize kMinListSize = 50; #define DEBUG_TIMING_INFO 0 // boolean @@ -416,7 +416,7 @@ JSTStyler::SetStyle JArray* JSTStyler::NewTokenStartList() { - auto* list = jnew JArray(kMinLgListSize); + auto* list = jnew JArray(kMinListSize); list->SetSortOrder(JListT::kSortAscending); list->SetCompareFunction(CompareTokenStarts); return list; diff --git a/libjcore/code/JStyledText.cpp b/libjcore/code/JStyledText.cpp index 04924f115..5e8470587 100644 --- a/libjcore/code/JStyledText.cpp +++ b/libjcore/code/JStyledText.cpp @@ -188,7 +188,8 @@ JStyledText::SetText { ClearUndo(); - JRunArray tmpStyle(itsStyles->GetMinLgSize()); + JRunArray tmpStyle; + tmpStyle.SetMinLgSize(itsStyles->GetMinLgSize()); if (style != nullptr) { tmpStyle = *style; @@ -455,7 +456,8 @@ JStyledText::ReadPrivateFormat Broadcast(WillBeBusy()); JString text; - JRunArray style(itsStyles->GetMinLgSize()); + JRunArray style; + style.SetMinLgSize(itsStyles->GetMinLgSize()); if (ReadPrivateFormat(input, &text, &style)) { SetText(text, &style); @@ -961,7 +963,8 @@ JStyledText::ReplaceAllInRange ) { JString text; - JRunArray styles(itsStyles->GetMinLgSize()); + JRunArray styles; + styles.SetMinLgSize(itsStyles->GetMinLgSize()); FontIterator styleIter(&styles); if (range.charRange.GetCount() == itsText.GetCharacterCount()) // avoid counting characters @@ -980,7 +983,8 @@ JStyledText::ReplaceAllInRange bool changed = false; - JRunArray newStyles(itsStyles->GetMinLgSize()); + JRunArray newStyles; + newStyles.SetMinLgSize(itsStyles->GetMinLgSize()); JStringIterator textIter(&text); while (textIter.Next(regex)) @@ -1742,7 +1746,8 @@ JStyledText::InsertText const JFont& font ) { - JRunArray style(itsStyles->GetMinLgSize()); + JRunArray style; + style.SetMinLgSize(itsStyles->GetMinLgSize()); style.AppendItems(font, text.GetCharacterCount()); return InsertText(index, text, style); @@ -1873,8 +1878,7 @@ JStyledText::CleanText JString tmpText; tmpText.SetMinLgSize(JLCeil(std::log2((**cleanText).GetByteCount()+256))); - JRunArray tmpStyle; - tmpStyle.SetMinSize((**cleanStyle).GetRunCount()+16); + JRunArray tmpStyle((**cleanStyle).GetRunCount()+16); JStringIterator iter(*cleanText); JUtf8Character c; @@ -2656,7 +2660,8 @@ JStyledText::Indent } } - JRunArray style(itsStyles->GetMinLgSize()); + JRunArray style; + style.SetMinLgSize(itsStyles->GetMinLgSize()); JStringIterator textIter(&itsText); textIter.UnsafeMoveTo(JStringIterator::kStartBeforeChar, range.charRange.first, range.byteRange.first); @@ -3011,7 +3016,8 @@ JStyledText::CleanRightMargin bool changed = false; TextRange origTextRange; JString newText; - JRunArray newStyles(itsStyles->GetMinLgSize()); + JRunArray newStyles; + newStyles.SetMinLgSize(itsStyles->GetMinLgSize()); TextIndex newCaretIndex; if (selectionRange.IsEmpty()) @@ -3027,7 +3033,8 @@ JStyledText::CleanRightMargin TextRange range; JString text; - JRunArray styles(itsStyles->GetMinLgSize()); + JRunArray styles; + styles.SetMinLgSize(itsStyles->GetMinLgSize()); *caretIndex = selectionRange.GetFirst(); TextIndex tmpCaretIndex; bool first = true; @@ -3162,7 +3169,8 @@ JStyledText::PrivateCleanRightMargin bool requireSpace = false; JString wordBuffer, spaceBuffer; - JRunArray wordStyles(itsStyles->GetMinLgSize()); + JRunArray wordStyles; + wordStyles.SetMinLgSize(itsStyles->GetMinLgSize()); while (index.charIndex <= origTextRange->charRange.last) { JSize spaceCount; diff --git a/libjcore/code/JStyledText.h b/libjcore/code/JStyledText.h index b28963d63..e7582c67f 100644 --- a/libjcore/code/JStyledText.h +++ b/libjcore/code/JStyledText.h @@ -415,7 +415,7 @@ class JStyledText : virtual public JBroadcaster TextRange SelectAll() const; TextRange CharToTextRange(const TextIndex* lineStart, const JCharacterRange& charRange) const; - void SetLgBlockSizes(const JSize textLgSize, const JSize styleLgSize); + void SetLgMinSizes(const JSize textLgSize, const JSize styleLgSize); static std::weak_ordering CompareCharacterIndices(const TextIndex& i, const TextIndex& j); @@ -941,12 +941,12 @@ JStyledText::GetBeyondEnd() } /****************************************************************************** - SetLgBlockSizes + SetLgMinSizes ******************************************************************************/ inline void -JStyledText::SetLgBlockSizes +JStyledText::SetLgMinSizes ( const JSize textLgSize, const JSize styleLgSize diff --git a/libjcore/code/JTextEditor.cpp b/libjcore/code/JTextEditor.cpp index 2e4f24f7a..c643881b3 100644 --- a/libjcore/code/JTextEditor.cpp +++ b/libjcore/code/JTextEditor.cpp @@ -233,7 +233,7 @@ JTextEditor::JTextEditor if (type == kFullEditor) { - itsText->SetLgBlockSizes(12, 7); // 12 = 4KB, 7 = 128 + itsText->SetLgMinSizes(12, 7); // 12 = 4KB, 7 = 128 itsLineStarts->SetMinLgSize(7); itsLineGeom->SetMinLgSize(7); } @@ -1544,7 +1544,7 @@ JTextEditor::GetCmdStatus ) const { - JArray flags(6); + JArray flags(kCmdCount); for (JIndex i=1; i<=kCmdCount; i++) { flags.AppendItem(false); diff --git a/libjcore/code/JTreeList.cpp b/libjcore/code/JTreeList.cpp index 719bc2197..6e13c720b 100644 --- a/libjcore/code/JTreeList.cpp +++ b/libjcore/code/JTreeList.cpp @@ -169,7 +169,7 @@ JTreeList::Close JIndex index; if (FindNode(node, &index)) { - JPtrArray nodeList(JPtrArrayT::kDeleteAll, 7); + JPtrArray nodeList(JPtrArrayT::kDeleteAll, 100); const_cast(node)->CollectDescendants(&nodeList); JIndex j; @@ -352,7 +352,7 @@ JTreeList::CloseDescendants { Close(node); - JPtrArray nodeList(JPtrArrayT::kDeleteAll, 7); + JPtrArray nodeList(JPtrArrayT::kDeleteAll, 100); const_cast(node)->CollectDescendants(&nodeList); for (const auto* n : nodeList) diff --git a/libjcore/code/JUndoRedoChain.cpp b/libjcore/code/JUndoRedoChain.cpp index 0c8bb36b4..be244f92c 100644 --- a/libjcore/code/JUndoRedoChain.cpp +++ b/libjcore/code/JUndoRedoChain.cpp @@ -32,8 +32,7 @@ JUndoRedoChain::JUndoRedoChain { if (useMultipleUndo) { - itsUndoList = jnew JPtrArray(JPtrArrayT::kDeleteAll); - itsUndoList->SetMinSize(itsMaxUndoCount); + itsUndoList = jnew JPtrArray(JPtrArrayT::kDeleteAll, itsMaxUndoCount); } } diff --git a/libjcore/code/JUtf8ByteBuffer.cpp b/libjcore/code/JUtf8ByteBuffer.cpp index c8e2e4db0..2fd02c76a 100644 --- a/libjcore/code/JUtf8ByteBuffer.cpp +++ b/libjcore/code/JUtf8ByteBuffer.cpp @@ -18,10 +18,10 @@ JUtf8ByteBuffer::JUtf8ByteBuffer ( - const JSize minLgSize + const JSize minSize ) : - JArray(minLgSize) + JArray(minSize) { } diff --git a/libjcore/code/JUtf8ByteBuffer.h b/libjcore/code/JUtf8ByteBuffer.h index e74978220..0886e8e07 100644 --- a/libjcore/code/JUtf8ByteBuffer.h +++ b/libjcore/code/JUtf8ByteBuffer.h @@ -15,7 +15,7 @@ class JUtf8ByteBuffer : public JArray { public: - JUtf8ByteBuffer(const JSize minLgSize = 10); + JUtf8ByteBuffer(const JSize minSize = 1024); ~JUtf8ByteBuffer() override; diff --git a/libjcore/code/JUtf8Character.h b/libjcore/code/JUtf8Character.h index dd471e23e..5bd9f1be3 100644 --- a/libjcore/code/JUtf8Character.h +++ b/libjcore/code/JUtf8Character.h @@ -175,9 +175,6 @@ JUtf8Character::SetIgnoreBadUtf8 /****************************************************************************** Assignment operator - We do not copy block size because we assume the client has set them - appropriately. - ******************************************************************************/ inline JUtf8Character& diff --git a/libjcore/code/jStreamUtil.cpp b/libjcore/code/jStreamUtil.cpp index 16b998280..5a4ab3f2c 100644 --- a/libjcore/code/jStreamUtil.cpp +++ b/libjcore/code/jStreamUtil.cpp @@ -789,7 +789,7 @@ JReadAll const JSize bufLength = 1024; char readBuf[ bufLength ]; - JUtf8ByteBuffer byteBuf(10); + JUtf8ByteBuffer byteBuf(bufLength); while (true) { size_t byteCount; diff --git a/libjexpr/code/JExprEditor.cpp b/libjexpr/code/JExprEditor.cpp index 260d9a439..50c2389f3 100644 --- a/libjexpr/code/JExprEditor.cpp +++ b/libjexpr/code/JExprEditor.cpp @@ -1429,7 +1429,7 @@ JExprEditor::GetCmdStatus ) const { - JArray flags(5); + JArray flags(kCmdCount); for (JIndex i=1; i<=kCmdCount; i++) { flags.AppendItem(false); diff --git a/libjexpr/code/JNaryFunction.cpp b/libjexpr/code/JNaryFunction.cpp index 7ed6709db..0eaca72f2 100644 --- a/libjexpr/code/JNaryFunction.cpp +++ b/libjexpr/code/JNaryFunction.cpp @@ -14,7 +14,7 @@ #include "JNaryFunction.h" #include -const JSize kLgMaxReasonableArgCount = 3; +const JSize kMaxReasonableArgCount = 10; /****************************************************************************** Constructor @@ -32,7 +32,7 @@ JNaryFunction::JNaryFunction { if (argList == nullptr) { - itsArgList = jnew JPtrArray(JPtrArrayT::kDeleteAll, kLgMaxReasonableArgCount); + itsArgList = jnew JPtrArray(JPtrArrayT::kDeleteAll, kMaxReasonableArgCount); } else { @@ -65,7 +65,7 @@ JNaryFunction::JNaryFunction : JFunctionWithArgs(source) { - itsArgList = jnew JPtrArray(JPtrArrayT::kDeleteAll, kLgMaxReasonableArgCount); + itsArgList = jnew JPtrArray(JPtrArrayT::kDeleteAll, kMaxReasonableArgCount); const JSize argCount = source.itsArgList->GetItemCount(); diff --git a/libjx/code/JXBusyIconTask.cpp b/libjx/code/JXBusyIconTask.cpp index 1d1264d18..18716eb44 100644 --- a/libjx/code/JXBusyIconTask.cpp +++ b/libjx/code/JXBusyIconTask.cpp @@ -29,6 +29,8 @@ static JXPM kBusyIcon[] = jx_busy_5_small, jx_busy_6_small, jx_busy_7_small, jx_busy_8_small }; +const JSize kBusyIconCount = sizeof(kBusyIcon)/sizeof(JXPM); + const JSize kAnimationPeriod = 100; // milliseconds /****************************************************************************** @@ -43,7 +45,7 @@ JXBusyIconTask::JXBusyIconTask : JXAnimationTask(widget) { - itsImageList = jnew JPtrArray(JPtrArrayT::kForgetAll); + itsImageList = jnew JPtrArray(JPtrArrayT::kForgetAll, kBusyIconCount); JXImageCache* cache = widget->GetDisplay()->GetImageCache(); for (const auto& xpm : kBusyIcon) diff --git a/libjx/code/JXCursorAnimator.cpp b/libjx/code/JXCursorAnimator.cpp index bd60e0938..19b2b410b 100644 --- a/libjx/code/JXCursorAnimator.cpp +++ b/libjx/code/JXCursorAnimator.cpp @@ -132,7 +132,7 @@ JXCursorAnimator::InitFrames JXDisplay* display ) { - itsFrames = jnew JArray; + itsFrames = jnew JArray(kBeachBallFrameCount); for (JUnsignedOffset i=0; iGetItemCount(); - JPtrArray nameList(JPtrArrayT::kDeleteAll); - nameList.SetMinSize(count); + JPtrArray nameList(JPtrArrayT::kDeleteAll, count); for (const auto& info : *itsDocList) { diff --git a/libjx/code/JXFileListTable.cpp b/libjx/code/JXFileListTable.cpp index 4c7990904..f9d0231c4 100644 --- a/libjx/code/JXFileListTable.cpp +++ b/libjx/code/JXFileListTable.cpp @@ -81,12 +81,12 @@ JXFileListTable::JXFileListTable itsEditMenuProvider = nullptr; itsEditMenu = nullptr; - itsFileList = jnew JPtrArray(JPtrArrayT::kDeleteAll, 8); + itsFileList = jnew JPtrArray(JPtrArrayT::kDeleteAll, 100); // UNIX file system is case-sensitive. itsFileList->SetCompareFunction(JCompareStringsCaseSensitive); ListenTo(itsFileList); - itsVisibleList = jnew JArray(8); + itsVisibleList = jnew JArray(100); itsVisibleList->SetSortOrder(JListT::kSortAscending); itsFileIcon = GetDisplay()->GetImageCache()->GetImage(jx_plain_file_small); diff --git a/libjx/code/JXSpellCheckerDialog.cpp b/libjx/code/JXSpellCheckerDialog.cpp index 6b020000d..242c9ec57 100644 --- a/libjx/code/JXSpellCheckerDialog.cpp +++ b/libjx/code/JXSpellCheckerDialog.cpp @@ -41,7 +41,7 @@ JXSpellCheckerDialog::JXSpellCheckerDialog itsCurrentIndex(range.GetFirst()), itsFoundErrorsFlag(false) { - itsSuggestionList = jnew JPtrArray(JPtrArrayT::kDeleteAll, 5); + itsSuggestionList = jnew JPtrArray(JPtrArrayT::kDeleteAll, 25); BuildWindow(); } diff --git a/libjx/testui/code/AnimateHelpMenuTask.cpp b/libjx/testui/code/AnimateHelpMenuTask.cpp index 3aaf29a94..79af66469 100644 --- a/libjx/testui/code/AnimateHelpMenuTask.cpp +++ b/libjx/testui/code/AnimateHelpMenuTask.cpp @@ -33,7 +33,7 @@ AnimateHelpMenuTask::AnimateHelpMenuTask { itsMenu = menu; - itsImageList = jnew JPtrArray(JPtrArrayT::kDeleteAll); + itsImageList = jnew JPtrArray(JPtrArrayT::kDeleteAll, kHelpIconCount); JXDisplay* display = itsMenu->GetDisplay(); for (JIndex i=1; i<=kHelpIconCount; i++)