ImDrawListClipper: avoid over reserving memory.
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 8ce1739..3dd0a36 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1429,7 +1429,10 @@
IM_ASSERT(_Current == 0 && _Count <= 1 && "Nested channel splitting is not supported. Please use separate instances of ImDrawListSplitter.");
int old_channels_count = _Channels.Size;
if (old_channels_count < channels_count)
+ {
+ _Channels.reserve(channels_count); // Avoid over reserving since this is likely to stay stable
_Channels.resize(channels_count);
+ }
_Count = channels_count;
// Channels[] (24/32 bytes each) hold storage that we'll swap with draw_list->_CmdBuffer/_IdxBuffer