After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 694376 - members missing from classes in output tag files
members missing from classes in output tag files
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.8.3.1
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2013-02-21 17:16 UTC by damon.carter
Modified: 2013-05-20 16:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test case, with 1.8.2 and 1.8.3 output (1.73 KB, application/x-gzip)
2013-02-21 17:16 UTC, damon.carter
  Details
patch for memberdef.cpp (373 bytes, patch)
2013-02-21 17:18 UTC, damon.carter
none Details | Review
Better patch to fix problem (3.42 KB, patch)
2013-03-07 14:21 UTC, damon.carter
none Details | Review
same patch file, not zipped (14.07 KB, patch)
2013-03-08 17:36 UTC, damon.carter
none Details | Review

Description damon.carter 2013-02-21 17:16:37 UTC
Created attachment 237071 [details]
test case, with 1.8.2 and 1.8.3 output

We have discovered that in the change from Doxygen version 1.8.2 to 1.8.3 and beyond, the contents of the generated tag file output has changed. In 1.8.2 and before, the container <compound kind="class"> held all of the class member functions and enums in <member kind="function" static="yes"> containers. In 1.8.2 and 1.8.3, the member functions are also contained in <compound kind="group">. But in 1.8.3 and later, the <compound kind="class"> contains only undocumented member functions, all the documented members are missing. This breaks our context-sensitive help, because our internal software relies on being able to get the member function help based upon the class name, it has no knowledge of the group name.

I have attached a test case and a potential patch.
Comment 1 damon.carter 2013-02-21 17:18:34 UTC
Created attachment 237072 [details] [review]
patch for memberdef.cpp

I don't pretend to know if this fix has undesired side effects, but it fixes the problem for me.
Comment 2 damon.carter 2013-02-21 18:54:31 UTC
I notice also that elements <member kind="enumeration"> and <member kind="enumvalue> are missing from the list for container <compound kind="group"> when comparing 1.8.2 vs 1.8.3. In the example submitted, there should be enumerations showing for the group1 container. My patch does not address that issue, but if all mention of the tagDataWritten bool are removed from the memberdef.cpp file, that problem also goes away. Removing the bool does leave duplicate members listed for the file and group containers, but at least the info is not missing.
Comment 3 damon.carter 2013-03-07 14:21:06 UTC
Created attachment 238297 [details] [review]
Better patch to fix problem

This patches fixes this problem and also fixes duplication of enumvalues in the tags file. This fix makes it so this version of Doxygen has the same member elements in the tags file as were found in older versions of Doxygen.
This fix changes the MemberDef::_writeTagData routine to add an argument for the definition type the member element is being printed from. Then the element keeps track that it has been written from file, class, group, etc. Routines which call _writeTagData have been modified to pass in their definitionType() value.
Comment 4 Dimitri van Heesch 2013-03-07 19:19:11 UTC
That's a pretty neat patch. I'll include it in the next subversion update.
Comment 5 damon.carter 2013-03-08 17:36:40 UTC
Created attachment 238384 [details] [review]
same patch file, not zipped

This is the same patch, but the patch file is not gzipped.
Comment 6 Dimitri van Heesch 2013-05-19 12:36:02 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.4. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.
Comment 7 damon.carter 2013-05-20 16:15:54 UTC
I agree, it is fixed, thank you!