diff options
| author | mitsuhiko <devnull@localhost> | 2010-05-30 13:51:50 +0200 |
|---|---|---|
| committer | mitsuhiko <devnull@localhost> | 2010-05-30 13:51:50 +0200 |
| commit | 9c3e7a6f5585b2f9a93b99db4698393eda610468 (patch) | |
| tree | eef4a8dba47ae8e6447726b82805c1d2c18d7dff /sphinx/domains/cpp.py | |
| parent | ca23d0062208d7c982d128b55b426b8fbb75cdb5 (diff) | |
| download | sphinx-9c3e7a6f5585b2f9a93b99db4698393eda610468.tar.gz | |
Fixed a C++ bug that caused bad references to be generated. This also
adds a note on overloads always ending up on the first version of the
method in case more than one is defined.
Diffstat (limited to 'sphinx/domains/cpp.py')
| -rw-r--r-- | sphinx/domains/cpp.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 9ec2ab4b..d5e59bc7 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -828,8 +828,13 @@ class CPPObject(ObjectDescription): signode['ids'].append(theid) signode['first'] = (not self.names) self.state.document.note_explicit_target(signode) - self.env.domaindata['cpp']['objects'][name] = \ - (self.env.docname, self.objtype) + + # XXX: why is objtype function? How to get to func? + typ = self.objtype + if typ == 'function': + typ = 'func' + self.env.domaindata['cpp']['objects'].setdefault(name, + (self.env.docname, typ, theid)) indextext = self.get_index_text(name) if indextext: @@ -1053,7 +1058,7 @@ class CPPDomain(Domain): } def clear_doc(self, docname): - for fullname, (fn, _) in self.data['objects'].items(): + for fullname, (fn, _, _) in self.data['objects'].items(): if fn == docname: del self.data['objects'][fullname] @@ -1066,7 +1071,7 @@ class CPPDomain(Domain): obj = self.data['objects'][name] if obj[1] != typ: return None - return make_refnode(builder, fromdocname, obj[0], expr.get_id(), + return make_refnode(builder, fromdocname, obj[0], obj[2], contnode, name) parser = DefinitionParser(target) @@ -1094,5 +1099,5 @@ class CPPDomain(Domain): return _create_refnode(expr.prefix(parent)) def get_objects(self): - for refname, (docname, type) in self.data['objects'].iteritems(): + for refname, (docname, type, theid) in self.data['objects'].iteritems(): yield (refname, refname, type, docname, refname, 1) |
