aboutsummaryrefslogtreecommitdiffstats
path: root/Compiler.cpp
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2015-02-11 00:53:43 +0800
committerChristian <c@ethdev.com>2015-02-12 18:33:10 +0800
commitadb434569c7f54a12dfbdc674b50a4a4baca59e4 (patch)
tree5ac29b6c5a670de2458004c03337f6334b63ef2c /Compiler.cpp
parent79aec95228f5c766daaa9d04a3800be99ded8015 (diff)
downloaddexon-solidity-adb434569c7f54a12dfbdc674b50a4a4baca59e4.tar.gz
dexon-solidity-adb434569c7f54a12dfbdc674b50a4a4baca59e4.tar.zst
dexon-solidity-adb434569c7f54a12dfbdc674b50a4a4baca59e4.zip
Dynamic copy to memory.
Diffstat (limited to 'Compiler.cpp')
-rw-r--r--Compiler.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/Compiler.cpp b/Compiler.cpp
index b3615367..dad79bb0 100644
--- a/Compiler.cpp
+++ b/Compiler.cpp
@@ -207,15 +207,10 @@ void Compiler::appendReturnValuePacker(TypePointers const& _typeParameters)
for (TypePointer const& type: _typeParameters)
{
- unsigned numBytes = type->getCalldataEncodedSize();
- if (numBytes > 32)
- BOOST_THROW_EXCEPTION(CompilerError()
- << errinfo_comment("Type " + type->toString() + " not yet supported."));
CompilerUtils(m_context).copyToStackTop(stackDepth, *type);
ExpressionCompiler::appendTypeConversion(m_context, *type, *type, true);
- bool const c_leftAligned = type->getCategory() == Type::Category::String;
bool const c_padToWords = true;
- dataOffset += CompilerUtils(m_context).storeInMemory(dataOffset, numBytes, c_leftAligned, c_padToWords);
+ dataOffset += CompilerUtils(m_context).storeInMemory(dataOffset, *type, c_padToWords);
stackDepth -= type->getSizeOnStack();
}
// note that the stack is not cleaned up here