summaryrefslogtreecommitdiffstats
path: root/source/slang/name.cpp
blob: a5cbb6541ead39cfde19db8e63d703cc579b290b (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
// name.cpp
#include "name.h"

namespace Slang {

String getText(Name* name)
{
    if (!name) return String();
    return name->text;
}

UnownedStringSlice getUnownedStringSliceText(Name* name)
{
    return name ? name->text.getUnownedSlice() : UnownedStringSlice();
}

Name* NamePool::getName(String const& text)
{
    RefPtr<Name> name;
    if (rootPool->names.TryGetValue(text, name))
        return name;

    name = new Name();
    name->text = text;
    rootPool->names.Add(text, name);
    return name;
}

} // namespace Slang