Przeglądaj źródła

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.
Brad King 11 lat temu
rodzic
commit
d55671ad9d
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      Utilities/Sphinx/cmake.py

+ 4 - 1
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):