// // Copyright 2002 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // #include "compiler/translator/PoolAlloc.h" #include "common/debug.h" #include "common/tls.h" angle::TLSIndex PoolIndex = TLS_INVALID_INDEX; bool InitializePoolIndex() { ASSERT(PoolIndex == TLS_INVALID_INDEX); PoolIndex = angle::CreateTLSIndex(nullptr); return PoolIndex != TLS_INVALID_INDEX; } void FreePoolIndex() { ASSERT(PoolIndex != TLS_INVALID_INDEX); angle::DestroyTLSIndex(PoolIndex); PoolIndex = TLS_INVALID_INDEX; } angle::PoolAllocator *GetGlobalPoolAllocator() { ASSERT(PoolIndex != TLS_INVALID_INDEX); return static_cast(angle::GetTLSValue(PoolIndex)); } void SetGlobalPoolAllocator(angle::PoolAllocator *poolAllocator) { ASSERT(PoolIndex != TLS_INVALID_INDEX); angle::SetTLSValue(PoolIndex, poolAllocator); }