From: <pj...@us...> - 2008-08-09 23:02:52
|
Revision: 5128 http://jython.svn.sourceforge.net/jython/?rev=5128&view=rev Author: pjenvey Date: 2008-08-09 23:02:50 +0000 (Sat, 09 Aug 2008) Log Message: ----------- oops, Stack won't work because we need to compare via identity. revert r5126 Modified Paths: -------------- branches/asm/src/org/python/core/ThreadState.java Modified: branches/asm/src/org/python/core/ThreadState.java =================================================================== --- branches/asm/src/org/python/core/ThreadState.java 2008-08-09 22:05:00 UTC (rev 5127) +++ branches/asm/src/org/python/core/ThreadState.java 2008-08-09 23:02:50 UTC (rev 5128) @@ -17,7 +17,7 @@ public boolean tracing; - private Stack reprStack = null; + public PyList reprStack = null; // public PyInstance initializingProxy = null; private Stack initializingProxies = null; @@ -69,11 +69,15 @@ public boolean enterRepr(PyObject obj) { if (reprStack == null) { - reprStack = new Stack(); - } else if (reprStack.search(obj) > -1) { - return false; + reprStack = new PyList(new PyObject[] {obj}); + return true; } - reprStack.push(obj); + for (int i = reprStack.size() - 1; i >= 0; i--) { + if (obj == reprStack.pyget(i)) { + return false; + } + } + reprStack.append(obj); return true; } @@ -81,10 +85,11 @@ if (reprStack == null) { return; } - int index; - if ((index = reprStack.search(obj)) > -1) { - int size = reprStack.size(); - reprStack.subList(size - index, size).clear(); + + for (int i = reprStack.size() - 1; i >= 0; i--) { + if (reprStack.pyget(i) == obj) { + reprStack.delRange(i, reprStack.size(), 1); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |