summaryrefslogtreecommitdiff
path: root/src/dae/daeStringRef.cpp
blob: 90da801b3dcb63a21e6ea81f41d59355f59d3379 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
* Copyright 2006 Sony Computer Entertainment Inc.
*
* Licensed under the MIT Open Source License, for details please see license.txt or the website
* http://www.opensource.org/licenses/mit-license.php
*
*/ 

#include <dae/daeStringRef.h>

//Contributed by Nus - Wed, 08 Nov 2006
// Nus: Use global pointer instead of local static.
static daeStringTable *pST = NULL;
//---------------------------

daeStringTable &daeStringRef::_stringTable()
{
//Contributed by Nus - Wed, 08 Nov 2006
  // static daeStringTable *st = new daeStringTable();
  // return *st;
  if(!pST)
    pST = new daeStringTable();
  return *pST;
}

void daeStringRef::releaseStringTable(void)
{
  if(pST) {
    delete pST;
    pST = NULL;
  }
}
//--------------------------------

daeStringRef::daeStringRef(daeString string)
{
	daeStringTable &st = _stringTable();
	_string = st.allocString(string);
}

const daeStringRef&
daeStringRef::set(daeString string)
{
	daeStringTable &st = _stringTable();
	_string = st.allocString(string);
	return *this;
}

const daeStringRef&
daeStringRef::operator= (daeString string)
{
	return set(string);
}