aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbTk')
-rw-r--r--src/FbTk/Resource.cc14
-rw-r--r--src/FbTk/Resource.hh9
2 files changed, 7 insertions, 16 deletions
diff --git a/src/FbTk/Resource.cc b/src/FbTk/Resource.cc
index 94b31b2..4be85de 100644
--- a/src/FbTk/Resource.cc
+++ b/src/FbTk/Resource.cc
@@ -42,7 +42,11 @@ ResourceManager::ResourceManager(const char *filename, bool lock_db) :
42 m_database(0), 42 m_database(0),
43 m_filename(filename ? filename : "") 43 m_filename(filename ? filename : "")
44{ 44{
45 ensureXrmIsInitialize(); 45 static bool xrm_initialized = false;
46 if (!xrm_initialized) {
47 XrmInitialize();
48 xrm_initialized = true;
49 }
46 50
47 if (lock_db) 51 if (lock_db)
48 lock(); 52 lock();
@@ -53,7 +57,6 @@ ResourceManager::~ResourceManager() {
53 delete m_database; 57 delete m_database;
54} 58}
55 59
56bool ResourceManager::m_init = false;
57 60
58/** 61/**
59 reloads all resources from resourcefile 62 reloads all resources from resourcefile
@@ -198,13 +201,6 @@ void ResourceManager::setResourceValue(const string &resname, const string &valu
198 201
199} 202}
200 203
201void ResourceManager::ensureXrmIsInitialize() {
202 if (!m_init) {
203 XrmInitialize();
204 m_init = true;
205 }
206}
207
208ResourceManager &ResourceManager::lock() { 204ResourceManager &ResourceManager::lock() {
209 ++m_db_lock; 205 ++m_db_lock;
210 // if the lock was zero, then load the database 206 // if the lock was zero, then load the database
diff --git a/src/FbTk/Resource.hh b/src/FbTk/Resource.hh
index bfdcdca..8c9d645 100644
--- a/src/FbTk/Resource.hh
+++ b/src/FbTk/Resource.hh
@@ -139,12 +139,10 @@ public:
139 } 139 }
140 } 140 }
141protected: 141protected:
142 static void ensureXrmIsInitialize();
143 142
144 int m_db_lock; 143 int m_db_lock;
145 144
146private: 145private:
147 static bool m_init;
148 146
149 ResourceList m_resourcelist; 147 ResourceList m_resourcelist;
150 148
@@ -168,11 +166,8 @@ template <typename T>
168class Resource:public Resource_base, public Accessor<T> { 166class Resource:public Resource_base, public Accessor<T> {
169public: 167public:
170 typedef T Type; 168 typedef T Type;
171 Resource(ResourceManager &rm, T val, 169 Resource(ResourceManager &rm, T val, const std::string &name, const std::string &altname):
172 const std::string &name, const std::string &altname): 170 Resource_base(name, altname), m_value(val), m_defaultval(val), m_rm(rm) {
173 Resource_base(name, altname),
174 m_value(val), m_defaultval(val),
175 m_rm(rm) {
176 m_rm.addResource(*this); // add this to resource handler 171 m_rm.addResource(*this); // add this to resource handler
177 } 172 }
178 virtual ~Resource() { 173 virtual ~Resource() {