aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AST.cpp2
-rw-r--r--Types.cpp8
-rw-r--r--Types.h2
3 files changed, 6 insertions, 6 deletions
diff --git a/AST.cpp b/AST.cpp
index e8bdecf3..2972cb5c 100644
--- a/AST.cpp
+++ b/AST.cpp
@@ -469,7 +469,7 @@ void MemberAccess::checkTypeRequirements()
unsigned memberIndex = type.memberNameToIndex(*m_memberName);
if (memberIndex >= type.getMemberCount())
BOOST_THROW_EXCEPTION(createTypeError("Member \"" + *m_memberName + "\" not found in " + type.toString()));
- m_type = type.getMemberByIndex(memberIndex).getType();
+ m_type = type.getMemberByIndex(memberIndex);
m_isLvalue = true;
}
diff --git a/Types.cpp b/Types.cpp
index e2443597..79d4a1c1 100644
--- a/Types.cpp
+++ b/Types.cpp
@@ -234,7 +234,7 @@ u256 StructType::getStorageSize() const
bool StructType::canLiveOutsideStorage() const
{
for (unsigned i = 0; i < getMemberCount(); ++i)
- if (!getMemberByIndex(i).getType()->canLiveOutsideStorage())
+ if (!getMemberByIndex(i)->canLiveOutsideStorage())
return false;
return true;
}
@@ -258,9 +258,9 @@ unsigned StructType::memberNameToIndex(string const& _name) const
return unsigned(-1);
}
-VariableDeclaration const& StructType::getMemberByIndex(unsigned _index) const
+shared_ptr<Type const> const& StructType::getMemberByIndex(unsigned _index) const
{
- return *m_struct.getMembers()[_index];
+ return m_struct.getMembers()[_index].getType();
}
u256 StructType::getStorageOffsetOfMember(unsigned _index) const
@@ -269,7 +269,7 @@ u256 StructType::getStorageOffsetOfMember(unsigned _index) const
u256 offset;
// vector<ASTPointer<VariableDeclaration>> const& members = m_struct.getMembers();
for (unsigned index = 0; index < _index; ++index)
- offset += getMemberByIndex(index).getType()->getStorageSize();
+ offset += getMemberByIndex(index)->getStorageSize();
return offset;
}
diff --git a/Types.h b/Types.h
index 72647017..b0d95d29 100644
--- a/Types.h
+++ b/Types.h
@@ -190,7 +190,7 @@ public:
unsigned getMemberCount() const;
/// Returns the index of the member with name @a _name or unsigned(-1) if it does not exist.
unsigned memberNameToIndex(std::string const& _name) const;
- VariableDeclaration const& getMemberByIndex(unsigned _index) const;
+ std::shared_ptr<Type const> const& getMemberByIndex(unsigned _index) const;
u256 getStorageOffsetOfMember(unsigned _index) const;
private: