summaryrefslogtreecommitdiff
path: root/Runtime/Serialize/TransferFunctions/RemapPPtrTransfer.cpp
blob: 62c5a36ac24ffc03fb264a8d67877b0dca139721 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "UnityPrefix.h"
#include "RemapPPtrTransfer.h"

RemapPPtrTransfer::RemapPPtrTransfer (int flags, bool readPPtrs)
{
	m_ReadPPtrs = readPPtrs;
	m_Flags = flags;
	m_UserData = NULL;
	m_GenerateIDFunctor = NULL;
	m_MetaMaskStack.reserve(4);
	m_MetaMaskStack.push_back (kNoTransferFlags);
	m_CachedMetaMaskStackTop = kNoTransferFlags;
}

void RemapPPtrTransfer::PushMetaFlag (TransferMetaFlags flag)
{
	m_MetaMaskStack.push_back (m_MetaMaskStack.back() | flag);
	m_CachedMetaMaskStackTop = m_MetaMaskStack.back ();
}

void RemapPPtrTransfer::PopMetaFlag ()
{
	m_MetaMaskStack.pop_back();
	m_CachedMetaMaskStackTop = m_MetaMaskStack.back ();
}

void RemapPPtrTransfer::AddMetaFlag (TransferMetaFlags flag)
{
	m_MetaMaskStack.back () |= flag;
	m_CachedMetaMaskStackTop = m_MetaMaskStack.back ();
}