1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Linux fixes

This commit is contained in:
Brian Fiete 2020-09-29 08:53:36 -07:00
parent b13bee470c
commit a399e383fa
8 changed files with 41 additions and 35 deletions

View file

@ -968,34 +968,6 @@ public:
}
};
template <typename T>
class BfDeferredAstNodeSizedArray : public SizedArray<T, 8>
{
public:
BfAstNode* mParentNode;
BfSizedArray<ASTREF(T)>* mSizedArray;
BfAstAllocator* mAlloc;
public:
BfDeferredAstNodeSizedArray(BfAstNode* parentNode, BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
{
mParentNode = parentNode;
mSizedArray = &arr;
mAlloc = alloc;
}
~BfDeferredAstNodeSizedArray()
{
BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc);
if (!this->mSizedArray->IsEmpty())
{
int endPos = this->mSizedArray->back()->mSrcEnd;
if (endPos > this->mParentNode->mSrcEnd)
this->mParentNode->mSrcEnd = endPos;
}
}
};
typedef void(*BfAstAcceptFunc)(BfAstNode* node, BfStructuralVisitor* visitor);
class BfAstTypeInfo
@ -1515,6 +1487,34 @@ T* BfNodeDynCastExact(BfAstNode* node)
BfIdentifierNode* BfIdentifierCast(BfAstNode* node);
BfAstNode* BfNodeToNonTemporary(BfAstNode* node);
template <typename T>
class BfDeferredAstNodeSizedArray : public SizedArray<T, 8>
{
public:
BfAstNode* mParentNode;
BfSizedArray<ASTREF(T)>* mSizedArray;
BfAstAllocator* mAlloc;
public:
BfDeferredAstNodeSizedArray(BfAstNode* parentNode, BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
{
mParentNode = parentNode;
mSizedArray = &arr;
mAlloc = alloc;
}
~BfDeferredAstNodeSizedArray()
{
BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc);
if (!this->mSizedArray->IsEmpty())
{
int endPos = this->mSizedArray->back()->mSrcEnd;
if (endPos > this->mParentNode->mSrcEnd)
this->mParentNode->mSrcEnd = endPos;
}
}
};
class BfStatement : public BfAstNode
{
public: