1.1 --- a/viewer.py Fri Apr 06 01:40:29 2007 +0200
1.2 +++ b/viewer.py Sat Apr 07 00:47:19 2007 +0200
1.3 @@ -946,7 +946,7 @@
1.4 first = 0
1.5
1.6 def _parameter(self, subprograms, params, n=None):
1.7 - types = []
1.8 + types = set()
1.9 for i in range(0, len(subprograms)):
1.10 subprogram = subprograms[i]
1.11 if n is not None:
1.12 @@ -954,7 +954,7 @@
1.13 else:
1.14 param, default = params[i]
1.15 if hasattr(subprogram, "paramtypes"):
1.16 - types += subprogram.paramtypes[param]
1.17 + types.update(subprogram.paramtypes[param])
1.18 return self._types_container(types, "types")
1.19
1.20 def _default(self, default):
1.21 @@ -1038,7 +1038,6 @@
1.22 return self._types_container(types, "types")
1.23
1.24 def _types_container(self, types, style_class):
1.25 - types = unique(types)
1.26 labels = {}
1.27 for type in types:
1.28 fn = type.type.full_name()
1.29 @@ -1053,10 +1052,10 @@
1.30
1.31 "Output the exception information for the given simplified 'nodes'."
1.32
1.33 - raises = []
1.34 + raises = set()
1.35 for node in nodes:
1.36 if hasattr(node, "raises") and node.raises:
1.37 - raises += node.raises
1.38 + raises.update(node.raises)
1.39 return self._types_container(raises, "raises")
1.40
1.41 def _scopes(self, nodes):
1.42 @@ -1113,16 +1112,9 @@
1.43 # Utility functions.
1.44
1.45 def flatten(lists):
1.46 - result = []
1.47 + result = set()
1.48 for l in lists:
1.49 - result += unique(l)
1.50 - return result
1.51 -
1.52 -def unique(l):
1.53 - result = []
1.54 - for i in l:
1.55 - if i not in result:
1.56 - result.append(i)
1.57 + result.update(l)
1.58 return result
1.59
1.60 # Convenience functions.