[Scummvm-cvs-logs] SF.net SVN: scummvm: [24926] scummvm/trunk/common/stack.h

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Dec 26 00:13:15 CET 2006


Revision: 24926
          http://scummvm.svn.sourceforge.net/scummvm/?rev=24926&view=rev
Author:   fingolfin
Date:     2006-12-25 15:13:13 -0800 (Mon, 25 Dec 2006)

Log Message:
-----------
Tweaked the FixedStack class a bit

Modified Paths:
--------------
    scummvm/trunk/common/stack.h

Modified: scummvm/trunk/common/stack.h
===================================================================
--- scummvm/trunk/common/stack.h	2006-12-25 23:05:07 UTC (rev 24925)
+++ scummvm/trunk/common/stack.h	2006-12-25 23:13:13 UTC (rev 24926)
@@ -49,26 +49,30 @@
 		assert(_size < MAX_SIZE);
 		_stack[_size++] = x;
 	}
-	T top() const {
-		if (_size > 0)
-			return _stack[_size - 1];
-		else
-			return 0;
+	const T& top() const {
+		assert(_size > 0);
+		return _stack[_size - 1];
 	}
+	T& top() {
+		assert(_size > 0);
+		return _stack[_size - 1];
+	}
 	T pop() {
-		T tmp;
-		assert(_size > 0);
-		tmp = _stack[_size - 1];
-		_stack[--_size] = 0;
+		T tmp = top();
+		--_size;
 		return tmp;
 	}
 	int size() const {
 		return _size;
 	}
-	T operator [](int i) {
+	T& operator [](int i) {
 		assert(0 <= i && i < MAX_SIZE);
 		return _stack[i];
 	}
+	const T& operator [](int i) const {
+		assert(0 <= i && i < MAX_SIZE);
+		return _stack[i];
+	}
 };
 
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list