obs-studio/deps/obs-scripting/cstrcache.cpp

29 lines
463 B
C++

#include <unordered_map>
#include <string>
#include "cstrcache.h"
using namespace std;
struct const_string_table {
unordered_map<string, string> strings;
};
static struct const_string_table table;
const char *cstrcache_get(const char *str)
{
if (!str || !*str)
return "";
auto &strings = table.strings;
auto pair = strings.find(str);
if (pair == strings.end()) {
strings[str] = str;
pair = strings.find(str);
}
return pair->second.c_str();
}