[Super-tux-commit] supertux/src lispreader.cpp,1.25,1.26
Brought to you by:
wkendrick
From: Matze B. <mat...@us...> - 2004-06-29 12:12:33
|
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; } |