From d55671ad9d6f24b79eaecbb9abbce49ef556742e Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 24 Apr 2014 09:04:27 -0400 Subject: [PATCH] Utilities/Sphinx: Fix cmake domain document removal with python3 In the domain clear_doc method, avoid removing entries from a dictionary while iterating over it. Instead accumulate a set of entries to remove at the end. --- Utilities/Sphinx/cmake.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py index 5eb4eaca7..0e8f2803b 100644 --- a/Utilities/Sphinx/cmake.py +++ b/Utilities/Sphinx/cmake.py @@ -290,9 +290,12 @@ class CMakeDomain(Domain): } def clear_doc(self, docname): + to_clear = set() for fullname, (fn, _) in self.data['objects'].items(): if fn == docname: - del self.data['objects'][fullname] + to_clear.add(fullname) + for fullname in to_clear: + del self.data['objects'][fullname] def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):