gfx/angle/src/compiler/InitializeParseContext.cpp

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:71457726f255
1 //
2 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6
7 #include "compiler/InitializeParseContext.h"
8
9 #include "compiler/osinclude.h"
10
11 OS_TLSIndex GlobalParseContextIndex = OS_INVALID_TLS_INDEX;
12
13 bool InitializeParseContextIndex()
14 {
15 assert(GlobalParseContextIndex == OS_INVALID_TLS_INDEX);
16
17 GlobalParseContextIndex = OS_AllocTLSIndex();
18 return GlobalParseContextIndex != OS_INVALID_TLS_INDEX;
19 }
20
21 void FreeParseContextIndex()
22 {
23 assert(GlobalParseContextIndex != OS_INVALID_TLS_INDEX);
24
25 OS_FreeTLSIndex(GlobalParseContextIndex);
26 GlobalParseContextIndex = OS_INVALID_TLS_INDEX;
27 }
28
29 void SetGlobalParseContext(TParseContext* context)
30 {
31 assert(GlobalParseContextIndex != OS_INVALID_TLS_INDEX);
32 OS_SetTLSValue(GlobalParseContextIndex, context);
33 }
34
35 TParseContext* GetGlobalParseContext()
36 {
37 assert(GlobalParseContextIndex != OS_INVALID_TLS_INDEX);
38 return static_cast<TParseContext*>(OS_GetTLSValue(GlobalParseContextIndex));
39 }
40

mercurial