Put some ownership on a vector.

This commit is contained in:
2025-04-18 16:09:46 -04:00
parent 12812814d4
commit b1854e8db8
3 changed files with 8 additions and 13 deletions

View File

@ -262,8 +262,6 @@ Layout::Layout (Platform *platform, bool limit)
topLevel = NULL;
widgetAtPoint = NULL;
queueResizeList = new typed::Vector<Widget> (4, false);
DBG_OBJ_CREATE ("dw::core::Layout");
bgColor = NULL;
@ -331,7 +329,6 @@ Layout::~Layout ()
topLevel.reset();
}
delete queueResizeList;
delete platform;
delete view;
delete textZone;
@ -383,7 +380,7 @@ void Layout::addWidget (std::unique_ptr< Widget > widget)
widget_p->container = NULL;
DBG_OBJ_SET_PTR_O (widget_p, "container", widget_p->container);
queueResizeList->clear ();
queueResizeList.clear ();
widget_p->notifySetAsTopLevel ();
findtextState.setWidget (widget_p);
@ -404,7 +401,7 @@ void Layout::removeWidget ()
* \bug Some more attributes must be reset here.
*/
topLevel = NULL;
queueResizeList->clear ();
queueResizeList.clear ();
widgetAtPoint = NULL;
canvasWidth = canvasAscent = canvasDescent = 0;
scrollX = scrollY = 0;
@ -887,10 +884,7 @@ void Layout::resizeIdle ()
resizeCounter++;
for (typed::Iterator <Widget> it = queueResizeList->iterator();
it.hasNext (); ) {
Widget *widget = it.getNext ();
for( auto &widget: queueResizeList ) {
if (widget->resizeQueued ()) {
widget->setFlags (Widget::NEEDS_RESIZE);
widget->unsetFlags (Widget::RESIZE_QUEUED);
@ -906,7 +900,7 @@ void Layout::resizeIdle ()
widget->unsetFlags (Widget::EXTREMES_QUEUED);
}
}
queueResizeList->clear ();
queueResizeList.clear ();
// Reset here, since below, queueResize() may be called again.
resizeIdleId = -1;

View File

@ -7,6 +7,7 @@
#include <memory>
#include <string>
#include <vector>
#include <unordered_map>
namespace dw {
@ -160,7 +161,7 @@ private:
View *view;
std::unique_ptr< Widget > topLevel;
Widget *widgetAtPoint;
lout::container::typed::Vector<Widget> *queueResizeList;
std::vector< Widget * > queueResizeList;
/* The state, which must be projected into the view. */
style::Color *bgColor;

View File

@ -333,7 +333,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast)
if (layout) {
// If RESIZE_QUEUED is set, this widget is already in the list.
if (!resizeQueued ())
layout->queueResizeList->put (this);
layout->queueResizeList.push_back (this);
resizeFlag = RESIZE_QUEUED;
extremesFlag = EXTREMES_QUEUED;
@ -372,7 +372,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast)
for (widget2 = parent, child = this; widget2;
child = widget2, widget2 = widget2->parent) {
if (layout && !widget2->resizeQueued ())
layout->queueResizeList->put (widget2);
layout->queueResizeList.push_back (widget2);
DBG_OBJ_MSGF ("resize", 2, "setting %s and ALLOCATE_QUEUED for %p",
resizeFlag == RESIZE_QUEUED ?