From ea171cde977abe8916c205659afbad843e04f030 Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 16 Apr 2014 13:33:28 +0100 Subject: [PATCH] Added copy constructors to Enumeration::Item and Declaration. --- src/CppParser/AST.cpp | 19 +++++++++++++++++++ src/CppParser/AST.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/src/CppParser/AST.cpp b/src/CppParser/AST.cpp index bf58c93d..953721da 100644 --- a/src/CppParser/AST.cpp +++ b/src/CppParser/AST.cpp @@ -116,6 +116,22 @@ Declaration::Declaration(DeclarationKind kind) { } +Declaration::Declaration(const Declaration& rhs) + : Kind(rhs.Kind) + , Access(rhs.Access) + , _Namespace(rhs._Namespace) + , Name(rhs.Name) + , Comment(rhs.Comment) + , DebugText(rhs.DebugText) + , IsIncomplete(rhs.IsIncomplete) + , IsDependent(rhs.IsDependent) + , CompleteDeclaration(rhs.CompleteDeclaration) + , DefinitionOrder(rhs.DefinitionOrder) + , PreprocessedEntities(rhs.PreprocessedEntities) + , OriginalPtr(rhs.OriginalPtr) +{ +} + DEF_STRING(Declaration, Name) DEF_STRING(Declaration, DebugText) DEF_VECTOR(Declaration, PreprocessedEntity*, PreprocessedEntities) @@ -374,6 +390,9 @@ DEF_VECTOR(Enumeration, Enumeration::Item, Items) Enumeration::Item::Item() : Declaration(DeclarationKind::EnumerationItem) {} +Enumeration::Item::Item(const Item& rhs) : Declaration(rhs), + Expression(rhs.Expression), Value(rhs.Value) {} + DEF_STRING(Enumeration::Item, Expression) Variable::Variable() : Declaration(DeclarationKind::Variable) {} diff --git a/src/CppParser/AST.h b/src/CppParser/AST.h index e09632e3..346f7ccc 100644 --- a/src/CppParser/AST.h +++ b/src/CppParser/AST.h @@ -358,6 +358,7 @@ struct PreprocessedEntity; struct CS_API Declaration { Declaration(DeclarationKind kind); + Declaration(const Declaration&); DeclarationKind Kind; AccessSpecifier Access; @@ -540,6 +541,8 @@ struct CS_API Enumeration : public Declaration struct CS_API Item : public Declaration { DECLARE_DECL_KIND(Item, EnumerationItem) + Item(const Item&); + STRING(Expression) uint64_t Value; };