[Super-tux-commit] supertux/src lispreader.cpp,1.18.2.1,1.18.2.2
Brought to you by:
wkendrick
From: Ryan F. <sik...@us...> - 2004-06-29 17:55:42
|
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; } } |