[Checkins] SVN: z3c.traverser/trunk/src/z3c/traverser/stackinfo/traversing.py fixed multi context bug

Bernd Dorn bernd.dorn at fhv.at
Tue Oct 3 15:37:12 EDT 2006


Log message for revision 70511:
  fixed multi context bug

Changed:
  U   z3c.traverser/trunk/src/z3c/traverser/stackinfo/traversing.py

-=-
Modified: z3c.traverser/trunk/src/z3c/traverser/stackinfo/traversing.py
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/stackinfo/traversing.py	2006-10-03 17:43:50 UTC (rev 70510)
+++ z3c.traverser/trunk/src/z3c/traverser/stackinfo/traversing.py	2006-10-03 19:37:11 UTC (rev 70511)
@@ -31,6 +31,11 @@
 def applyStackConsumers(context, request):
     if not request.annotations.has_key(CONSUMED_ANNOTATION_KEY):
         request.annotations[CONSUMED_ANNOTATION_KEY] = []
+        request.annotations[CONSUMERS_ANNOTATION_KEY] = []
+    else:
+        for obj, consumed in request.annotations[CONSUMED_ANNOTATION_KEY]:
+            if obj == context:
+                return
     orgStack = request.getTraversalStack()
     cons = [cons for name, cons in getStackConsumers(
         context, request)]
@@ -40,7 +45,7 @@
         items = orgStack[len(newStack):]
         items.reverse()
         consumed.append((context, items))
-    request.annotations[CONSUMERS_ANNOTATION_KEY] = cons
+    request.annotations[CONSUMERS_ANNOTATION_KEY].extend(cons)
 
 def _encode(v, _safe='@+'):
     return urllib.quote(v.encode('utf-8'), _safe)



More information about the Checkins mailing list