[Erp5-report] r24328 - /erp5/trunk/products/PortalTransforms/TransformEngine.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Oct 24 23:39:00 CEST 2008
Author: yusei
Date: Fri Oct 24 23:39:00 2008
New Revision: 24328
URL: http://svn.erp5.org?rev=24328&view=rev
Log:
Fixed infinite loop bug.
Modified:
erp5/trunk/products/PortalTransforms/TransformEngine.py
Modified: erp5/trunk/products/PortalTransforms/TransformEngine.py
URL: http://svn.erp5.org/erp5/trunk/products/PortalTransforms/TransformEngine.py?rev=24328&r1=24327&r2=24328&view=diff
==============================================================================
--- erp5/trunk/products/PortalTransforms/TransformEngine.py (original)
+++ erp5/trunk/products/PortalTransforms/TransformEngine.py Fri Oct 24 23:39:00 2008
@@ -336,10 +336,18 @@
return winner
- def _getPaths(self, orig, target, requirements, path=None, result=None):
+ def _getPaths(self, orig, target, requirements, path=None, result=None, searched_orig_list=None):
"""return a all path for transformation from orig mimetype to
target mimetype
"""
+ # don't search the same orig again, otherwise infinite loop occurs.
+ if searched_orig_list is None:
+ searched_orig_list = []
+ if orig in searched_orig_list:
+ return result
+ else:
+ searched_orig_list.append(orig)
+
if path is None:
result = []
path = []
@@ -363,7 +371,7 @@
if not requirements:
result.append(path[:])
else:
- self._getPaths(o_mt, target, requirements, path, result)
+ self._getPaths(o_mt, target, requirements, path, result, searched_orig_list)
if required:
requirements.append(name)
path.pop()
More information about the Erp5-report
mailing list