Browse Source

Fixed a bug that could cause a method to be added twice to its class.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/506/merge
Dimitar Dobrev 10 years ago
parent
commit
5395761809
  1. 8
      src/CppParser/Parser.cpp

8
src/CppParser/Parser.cpp

@ -495,28 +495,28 @@ Parser::WalkVTableComponent(const clang::VTableComponent& Component)
{ {
VTC.Kind = VTableComponentKind::FunctionPointer; VTC.Kind = VTableComponentKind::FunctionPointer;
auto MD = const_cast<CXXMethodDecl*>(Component.getFunctionDecl()); auto MD = const_cast<CXXMethodDecl*>(Component.getFunctionDecl());
VTC.Declaration = WalkMethodCXX(MD); VTC.Declaration = WalkMethodCXX(MD, /*AddToClass=*/false);
break; break;
} }
case clang::VTableComponent::CK_CompleteDtorPointer: case clang::VTableComponent::CK_CompleteDtorPointer:
{ {
VTC.Kind = VTableComponentKind::CompleteDtorPointer; VTC.Kind = VTableComponentKind::CompleteDtorPointer;
auto MD = const_cast<CXXDestructorDecl*>(Component.getDestructorDecl()); auto MD = const_cast<CXXDestructorDecl*>(Component.getDestructorDecl());
VTC.Declaration = WalkMethodCXX(MD); VTC.Declaration = WalkMethodCXX(MD, /*AddToClass=*/false);
break; break;
} }
case clang::VTableComponent::CK_DeletingDtorPointer: case clang::VTableComponent::CK_DeletingDtorPointer:
{ {
VTC.Kind = VTableComponentKind::DeletingDtorPointer; VTC.Kind = VTableComponentKind::DeletingDtorPointer;
auto MD = const_cast<CXXDestructorDecl*>(Component.getDestructorDecl()); auto MD = const_cast<CXXDestructorDecl*>(Component.getDestructorDecl());
VTC.Declaration = WalkMethodCXX(MD); VTC.Declaration = WalkMethodCXX(MD, /*AddToClass=*/false);
break; break;
} }
case clang::VTableComponent::CK_UnusedFunctionPointer: case clang::VTableComponent::CK_UnusedFunctionPointer:
{ {
VTC.Kind = VTableComponentKind::UnusedFunctionPointer; VTC.Kind = VTableComponentKind::UnusedFunctionPointer;
auto MD = const_cast<CXXMethodDecl*>(Component.getUnusedFunctionDecl()); auto MD = const_cast<CXXMethodDecl*>(Component.getUnusedFunctionDecl());
VTC.Declaration = WalkMethodCXX(MD); VTC.Declaration = WalkMethodCXX(MD, /*AddToClass=*/false);
break; break;
} }
default: default:

Loading…
Cancel
Save