[Scummvm-cvs-logs] CVS: scummvm/gui TabWidget.cpp,1.5,1.6 TabWidget.h,1.2,1.3 dialog.cpp,1.38,1.39 widget.cpp,1.25,1.26 widget.h,1.30,1.31

Max Horn fingolfin at users.sourceforge.net
Fri Nov 7 06:51:11 CET 2003


Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv8692

Modified Files:
	TabWidget.cpp TabWidget.h dialog.cpp widget.cpp widget.h 
Log Message:
fixed memory leak in TabWidget

Index: TabWidget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/TabWidget.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- TabWidget.cpp	3 Nov 2003 14:55:36 -0000	1.5
+++ TabWidget.cpp	7 Nov 2003 14:50:32 -0000	1.6
@@ -42,6 +42,14 @@
 	_tabWidth = 40;
 }
 
+TabWidget::~TabWidget() {
+	for (int i = 0; i < _tabs.size(); ++i) {
+		delete _tabs[i].firstWidget;
+		_tabs[i].firstWidget = 0;
+	}
+	_tabs.clear();
+}
+
 int16 TabWidget::getChildY() const {
 	return getAbsY() + kTabHeight;
 }

Index: TabWidget.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/TabWidget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- TabWidget.h	2 Nov 2003 22:31:19 -0000	1.2
+++ TabWidget.h	7 Nov 2003 14:50:32 -0000	1.3
@@ -39,6 +39,7 @@
 
 public:
 	TabWidget(GuiObject *boss, int x, int y, int w, int h);
+	~TabWidget();
 	
 	virtual int16	getChildY() const;
 

Index: dialog.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/dialog.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- dialog.cpp	7 Nov 2003 02:26:55 -0000	1.38
+++ dialog.cpp	7 Nov 2003 14:50:32 -0000	1.39
@@ -35,13 +35,7 @@
  */
 
 Dialog::~Dialog() {
-	Widget *w = _firstWidget, *next;
-	while (w) {
-		next = w->_next;
-		w->_next = 0;
-		delete w;
-		w = next;
-	}
+	delete _firstWidget;
 	_firstWidget = 0;
 }
 

Index: widget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/widget.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- widget.cpp	3 Nov 2003 23:33:40 -0000	1.25
+++ widget.cpp	7 Nov 2003 14:50:32 -0000	1.26
@@ -33,6 +33,10 @@
 	_boss->_firstWidget = this;
 }
 
+Widget::~Widget() {
+	delete _next;
+}
+
 void Widget::draw() {
 	NewGui *gui = &g_gui;
 

Index: widget.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/widget.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- widget.h	3 Nov 2003 23:33:40 -0000	1.30
+++ widget.h	7 Nov 2003 14:50:32 -0000	1.31
@@ -78,7 +78,7 @@
 
 public:
 	Widget(GuiObject *boss, int x, int y, int w, int h);
-	virtual ~Widget() {}
+	virtual ~Widget();
 
 	virtual int16	getAbsX() const	{ return _x + _boss->getChildX(); }
 	virtual int16	getAbsY() const	{ return _y + _boss->getChildY(); }





More information about the Scummvm-git-logs mailing list