blob: 6a6c51bdac594a8a0b13d6b5d7ddabd25790308f [file]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft Corporation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#pragma once
namespace Wasm
{
class WasmElementSegment
{
public:
WasmElementSegment(ArenaAllocator* alloc, const uint32 index, const WasmNode initExpr, const uint32 numElem);
void AddElement(const uint32 funcIndex);
uint32 GetElement(const uint32 tableIndex) const;
uint32 GetNumElements() const { return m_numElem; }
WasmNode GetOffsetExpr() const { return m_offsetExpr; }
private:
ArenaAllocator* m_alloc;
uint32 m_index;
const WasmNode m_offsetExpr;
uint32 m_numElem;
uint32 m_offset;
uint32 m_elemIdx;
uint32* m_elems;
void Init();
};
} // Namespace Wasm