mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
f
This commit is contained in:
parent
672e157135
commit
73aa171b19
@ -581,12 +581,12 @@ LinkerObject const& Assembly::assemble() const
|
|||||||
static auto appendBigEndianUint16 = [](bytes& _dest, auto _value) {
|
static auto appendBigEndianUint16 = [](bytes& _dest, auto _value) {
|
||||||
static_assert(!std::numeric_limits<decltype(_value)>::is_signed, "only unsigned types or bigint supported");
|
static_assert(!std::numeric_limits<decltype(_value)>::is_signed, "only unsigned types or bigint supported");
|
||||||
assertThrow(_value <= 0xFFFF, AssemblyException, "");
|
assertThrow(_value <= 0xFFFF, AssemblyException, "");
|
||||||
appendBigEndian(_dest, 2, _value);
|
appendBigEndian(_dest, 2, static_cast<size_t>(_value));
|
||||||
};
|
};
|
||||||
vector<size_t> codeSectionSizeOffsets;
|
vector<size_t> codeSectionSizeOffsets;
|
||||||
auto setCodeSectionSize = [&](size_t _section, size_t _size) {
|
auto setCodeSectionSize = [&](size_t _section, size_t _size) {
|
||||||
if (eof)
|
if (eof)
|
||||||
setBigEndian(ret.bytecode, codeSectionSizeOffsets.at(_section), 2, _size);
|
toBigEndian(_size, bytesRef(ret.bytecode.data() + codeSectionSizeOffsets.at(_section), 2));
|
||||||
};
|
};
|
||||||
std::optional<size_t> dataSectionSizeOffset;
|
std::optional<size_t> dataSectionSizeOffset;
|
||||||
auto setDataSectionSize = [&](size_t _size) {
|
auto setDataSectionSize = [&](size_t _size) {
|
||||||
@ -594,7 +594,7 @@ LinkerObject const& Assembly::assemble() const
|
|||||||
{
|
{
|
||||||
assertThrow(dataSectionSizeOffset.has_value(), AssemblyException, "");
|
assertThrow(dataSectionSizeOffset.has_value(), AssemblyException, "");
|
||||||
assertThrow(_size <= 0xFFFF, AssemblyException, "Invalid data section size.");
|
assertThrow(_size <= 0xFFFF, AssemblyException, "Invalid data section size.");
|
||||||
setBigEndian(ret.bytecode, *dataSectionSizeOffset, 2, _size);
|
toBigEndian(_size, bytesRef(ret.bytecode.data() + *dataSectionSizeOffset, 2));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// Insert EOF1 header.
|
// Insert EOF1 header.
|
||||||
|
Loading…
Reference in New Issue
Block a user