Update of /cvsroot/super-tux/supertux/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9741
Modified Files:
Tag: supertux_0_1_1_branch
lispreader.cpp
Log Message:
- backported MatzeB's improved lisp_free() patch
Index: lispreader.cpp
===================================================================
RCS file: /cvsroot/super-tux/supertux/src/lispreader.cpp,v
retrieving revision 1.18.2.1
retrieving revision 1.18.2.2
diff -u -d -r1.18.2.1 -r1.18.2.2
--- lispreader.cpp 28 Jun 2004 23:04:57 -0000 1.18.2.1
+++ lispreader.cpp 29 Jun 2004 17:55:22 -0000 1.18.2.2
@@ -22,7 +22,7 @@
*/
#include <iostream>
-#include <queue>
+#include <vector>
#include <string>
#include <assert.h>
#include <ctype.h>
@@ -507,13 +507,13 @@
/** We have to use this iterative code because the recursion function
* produces a stack overflow and crashes 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)
{
@@ -528,14 +528,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;
}
}
|