From 4f13859f8c010410b7497ed860c409a8b899538c Mon Sep 17 00:00:00 2001 From: Lefteris Karapetsas Date: Mon, 2 Mar 2015 12:08:32 +0100 Subject: [PATCH] Using normal pointer in getInheritableMembers() --- AST.cpp | 12 ++++++------ AST.h | 4 ++-- Types.cpp | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/AST.cpp b/AST.cpp index e5aef4cbb..4c6db6a20 100644 --- a/AST.cpp +++ b/AST.cpp @@ -209,13 +209,13 @@ vector, FunctionTypePointer>> const& ContractDefinition::getIn return *m_interfaceFunctionList; } -vector> const& ContractDefinition::getInheritableMembers() const +vector const& ContractDefinition::getInheritableMembers() const { if (!m_inheritableMembers) { set memberSeen; - m_inheritableMembers.reset(new vector>()); - auto addInheritableMember = [&](ASTPointer const& _decl) + m_inheritableMembers.reset(new vector()); + auto addInheritableMember = [&](Declaration const* _decl) { if (memberSeen.count(_decl->getName()) == 0 && _decl->isVisibleInDerivedContracts()) { @@ -225,13 +225,13 @@ vector> const& ContractDefinition::getInheritableMembers }; for (ASTPointer const& f: getDefinedFunctions()) - addInheritableMember(f); + addInheritableMember(f.get()); for (ASTPointer const& v: getStateVariables()) - addInheritableMember(v); + addInheritableMember(v.get()); for (ASTPointer const& s: getDefinedStructs()) - addInheritableMember(s); + addInheritableMember(s.get()); } return *m_inheritableMembers; } diff --git a/AST.h b/AST.h index 97e85927b..d028e8a76 100644 --- a/AST.h +++ b/AST.h @@ -248,7 +248,7 @@ public: std::map, FunctionTypePointer> getInterfaceFunctions() const; /// @returns a list of the inheritable members of this contract - std::vector> const& getInheritableMembers() const; + std::vector const& getInheritableMembers() const; /// List of all (direct and indirect) base contracts in order from derived to base, including /// the contract itself. Available after name resolution @@ -276,7 +276,7 @@ private: std::vector m_linearizedBaseContracts; mutable std::unique_ptr, FunctionTypePointer>>> m_interfaceFunctionList; mutable std::unique_ptr>> m_interfaceEvents; - mutable std::unique_ptr>> m_inheritableMembers; + mutable std::unique_ptr> m_inheritableMembers; }; class InheritanceSpecifier: public ASTNode diff --git a/Types.cpp b/Types.cpp index 84e029269..dc72dcc49 100644 --- a/Types.cpp +++ b/Types.cpp @@ -1024,7 +1024,7 @@ MemberList const& TypeType::getMembers() const if (find(currentBases.begin(), currentBases.end(), &contract) != currentBases.end()) // We are accessing the type of a base contract, so add all public and protected // members. Note that this does not add inherited functions on purpose. - for (ASTPointer const& decl: contract.getInheritableMembers()) + for (Declaration const* decl: contract.getInheritableMembers()) members.push_back(make_pair(decl->getName(), decl->getType())); } else if (m_actualType->getCategory() == Category::Enum)