mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Delete for memory objects.
This commit is contained in:
+18
-4
@@ -679,10 +679,24 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess)
|
||||
case Type::Category::Struct:
|
||||
{
|
||||
StructType const& type = dynamic_cast<StructType const&>(*_memberAccess.getExpression().getType());
|
||||
m_context << eth::Instruction::POP; // structs always align to new slot
|
||||
pair<u256, unsigned> const& offsets = type.getStorageOffsetsOfMember(member);
|
||||
m_context << offsets.first << eth::Instruction::ADD << u256(offsets.second);
|
||||
setLValueToStorageItem(_memberAccess);
|
||||
switch (type.location())
|
||||
{
|
||||
case DataLocation::Storage:
|
||||
{
|
||||
m_context << eth::Instruction::POP; // structs always align to new slot
|
||||
pair<u256, unsigned> const& offsets = type.getStorageOffsetsOfMember(member);
|
||||
m_context << offsets.first << eth::Instruction::ADD << u256(offsets.second);
|
||||
setLValueToStorageItem(_memberAccess);
|
||||
break;
|
||||
}
|
||||
case DataLocation::Memory:
|
||||
{
|
||||
solAssert(false, "Member access for memory structs not yet implemented.");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
solAssert(false, "Illegal data location for struct.");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Type::Category::Enum:
|
||||
|
||||
Reference in New Issue
Block a user