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.
|