Update of /cvsroot/super-tux/supertux/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1694/src
Modified Files:
lispreader.cpp
Log Message:
use a more efficient datastructure in lisp_free
Index: lispreader.cpp
===================================================================
RCS file: /cvsroot/super-tux/supertux/src/lispreader.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- lispreader.cpp 28 Jun 2004 22:01:29 -0000 1.25
+++ lispreader.cpp 29 Jun 2004 12:12:24 -0000 1.26
@@ -21,7 +21,7 @@
* Boston, MA 02111-1307, USA.
*/
#include <iostream>
-#include <queue>
+#include <vector>
#include <string>
#include <cctype>
#include <cstdlib>
@@ -509,12 +509,12 @@
/** We have to use this iterative code, because the recursive function
* produces a stack overflow and crashs on OSX 10.2
*/
- std::queue<lisp_object_t*> objs;
- objs.push(obj);
+ std::vector<lisp_object_t*> objs;
+ objs.push_back(obj);
while(!objs.empty()) {
- lisp_object_t* obj = objs.front();
- objs.pop();
+ lisp_object_t* obj = objs.back();
+ objs.pop_back();
switch (obj->type) {
case LISP_TYPE_INTERNAL :
@@ -530,14 +530,14 @@
case LISP_TYPE_CONS :
case LISP_TYPE_PATTERN_CONS :
if(obj->v.cons.car)
- objs.push(obj->v.cons.car);
+ objs.push_back(obj->v.cons.car);
if(obj->v.cons.cdr)
- objs.push(obj->v.cons.cdr);
+ objs.push_back(obj->v.cons.cdr);
break;
case LISP_TYPE_PATTERN_VAR :
if(obj->v.pattern.sub)
- objs.push(obj->v.pattern.sub);
+ objs.push_back(obj->v.pattern.sub);
break;
}
|