mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[Sol->Yul] Implementing resizing of dynamic byte arrays
Co-authored-by: chriseth <chris@ethereum.org>
This commit is contained in:
co-authored by
chriseth
parent
9aafb62e52
commit
4a66723ff9
@@ -446,6 +446,29 @@ private:
|
||||
/// signature: (slot) ->
|
||||
std::string clearStorageStructFunction(StructType const& _type);
|
||||
|
||||
/// @returns the name of a function that resizes a storage byte array
|
||||
/// signature: (array, newLen)
|
||||
std::string resizeDynamicByteArrayFunction(ArrayType const& _type);
|
||||
|
||||
/// @returns the name of a function that increases size of byte array
|
||||
/// when we resize byte array frextractUsedSetLenom < 32 elements to >= 32 elements or we push to byte array of size 31 copying of data will occur
|
||||
/// signature: (array, data, oldLen, newLen)
|
||||
std::string increaseByteArraySizeFunction(ArrayType const& _type);
|
||||
|
||||
/// @returns the name of a function that decreases size of byte array
|
||||
/// when we resize byte array from >= 32 elements to < 32 elements or we pop from byte array of size 32 copying of data will occur
|
||||
/// signature: (array, data, oldLen, newLen)
|
||||
std::string decreaseByteArraySizeFunction(ArrayType const& _type);
|
||||
|
||||
/// @returns the name of a function that sets size of short byte array while copying data
|
||||
/// should be called when we resize from long byte array (more than 32 elements) to short byte array
|
||||
/// signature: (array, data, len)
|
||||
std::string byteArrayTransitLongToShortFunction(ArrayType const& _type);
|
||||
|
||||
/// @returns the name of a function that extracts only used part of slot that represents short byte array
|
||||
/// signature: (data, len) -> data
|
||||
std::string shortByteArrayEncodeUsedAreaSetLengthFunction();
|
||||
|
||||
langutil::EVMVersion m_evmVersion;
|
||||
RevertStrings m_revertStrings;
|
||||
MultiUseYulFunctionCollector& m_functionCollector;
|
||||
|
||||
Reference in New Issue
Block a user