Loading src/doxygen.cpp +15 −4 Original line number Original line Diff line number Diff line Loading @@ -1310,11 +1310,11 @@ static void addClassToContext(EntryNav *rootNav) QCString tagName; QCString tagName; QCString refFileName; QCString refFileName; TagInfo *tagInfo = rootNav->tagInfo(); TagInfo *tagInfo = rootNav->tagInfo(); int i; if (tagInfo) if (tagInfo) { { tagName = tagInfo->tagName; tagName = tagInfo->tagName; refFileName = tagInfo->fileName; refFileName = tagInfo->fileName; int i; if ((i=fullName.find("::"))!=-1) if ((i=fullName.find("::"))!=-1) // symbols imported via tag files may come without the parent scope, // symbols imported via tag files may come without the parent scope, // so we artificially create it here // so we artificially create it here Loading @@ -1322,6 +1322,19 @@ static void addClassToContext(EntryNav *rootNav) buildScopeFromQualifiedName(fullName,fullName.contains("::"),root->lang,tagInfo); buildScopeFromQualifiedName(fullName,fullName.contains("::"),root->lang,tagInfo); } } } } ArgumentList *tArgList = 0; if ((root->lang==SrcLangExt_CSharp || root->lang==SrcLangExt_Java) && (i=fullName.find('<'))!=-1) { // a Java/C# generic class looks like a C++ specialization, so we need to split the // name and template arguments here tArgList = new ArgumentList; stringToArgumentList(fullName.mid(i),tArgList); fullName=fullName.left(i); } else { tArgList = getTemplateArgumentsFromName(fullName,root->tArgLists); } cd=new ClassDef(root->fileName,root->startLine,root->startColumn, cd=new ClassDef(root->fileName,root->startLine,root->startColumn, fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum); fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum); Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", Loading @@ -1336,8 +1349,6 @@ static void addClassToContext(EntryNav *rootNav) cd->setTypeConstraints(root->typeConstr); cd->setTypeConstraints(root->typeConstr); //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); ArgumentList *tArgList = getTemplateArgumentsFromName(fullName,root->tArgLists); //printf("class %s template args=%s\n",fullName.data(), //printf("class %s template args=%s\n",fullName.data(), // tArgList ? tempArgListToString(tArgList).data() : "<none>"); // tArgList ? tempArgListToString(tArgList).data() : "<none>"); cd->setTemplateArguments(tArgList); cd->setTemplateArguments(tArgList); Loading Loading
src/doxygen.cpp +15 −4 Original line number Original line Diff line number Diff line Loading @@ -1310,11 +1310,11 @@ static void addClassToContext(EntryNav *rootNav) QCString tagName; QCString tagName; QCString refFileName; QCString refFileName; TagInfo *tagInfo = rootNav->tagInfo(); TagInfo *tagInfo = rootNav->tagInfo(); int i; if (tagInfo) if (tagInfo) { { tagName = tagInfo->tagName; tagName = tagInfo->tagName; refFileName = tagInfo->fileName; refFileName = tagInfo->fileName; int i; if ((i=fullName.find("::"))!=-1) if ((i=fullName.find("::"))!=-1) // symbols imported via tag files may come without the parent scope, // symbols imported via tag files may come without the parent scope, // so we artificially create it here // so we artificially create it here Loading @@ -1322,6 +1322,19 @@ static void addClassToContext(EntryNav *rootNav) buildScopeFromQualifiedName(fullName,fullName.contains("::"),root->lang,tagInfo); buildScopeFromQualifiedName(fullName,fullName.contains("::"),root->lang,tagInfo); } } } } ArgumentList *tArgList = 0; if ((root->lang==SrcLangExt_CSharp || root->lang==SrcLangExt_Java) && (i=fullName.find('<'))!=-1) { // a Java/C# generic class looks like a C++ specialization, so we need to split the // name and template arguments here tArgList = new ArgumentList; stringToArgumentList(fullName.mid(i),tArgList); fullName=fullName.left(i); } else { tArgList = getTemplateArgumentsFromName(fullName,root->tArgLists); } cd=new ClassDef(root->fileName,root->startLine,root->startColumn, cd=new ClassDef(root->fileName,root->startLine,root->startColumn, fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum); fullName,sec,tagName,refFileName,TRUE,root->spec&Entry::Enum); Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", Debug::print(Debug::Classes,0," New class `%s' (sec=0x%08x)! #tArgLists=%d tagInfo=%p\n", Loading @@ -1336,8 +1349,6 @@ static void addClassToContext(EntryNav *rootNav) cd->setTypeConstraints(root->typeConstr); cd->setTypeConstraints(root->typeConstr); //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); //printf("new ClassDef %s tempArgList=%p specScope=%s\n",fullName.data(),root->tArgList,root->scopeSpec.data()); ArgumentList *tArgList = getTemplateArgumentsFromName(fullName,root->tArgLists); //printf("class %s template args=%s\n",fullName.data(), //printf("class %s template args=%s\n",fullName.data(), // tArgList ? tempArgListToString(tArgList).data() : "<none>"); // tArgList ? tempArgListToString(tArgList).data() : "<none>"); cd->setTemplateArguments(tArgList); cd->setTemplateArguments(tArgList); Loading