summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-04-24 13:04:27 (GMT)
committerBrad King <brad.king@kitware.com>2014-04-24 13:04:52 (GMT)
commitd55671ad9d6f24b79eaecbb9abbce49ef556742e (patch)
tree69380f362f190461b024866e87cb13b6a96e20c8
parent69069cfb1ab39d3466bedce65f02aa186f4d65fd (diff)
downloadCMake-d55671ad9d6f24b79eaecbb9abbce49ef556742e.zip
CMake-d55671ad9d6f24b79eaecbb9abbce49ef556742e.tar.gz
CMake-d55671ad9d6f24b79eaecbb9abbce49ef556742e.tar.bz2
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.
-rw-r--r--Utilities/Sphinx/cmake.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py
index 5eb4eac..0e8f280 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):