Regularize the camera constant store singleton to use a function local static like most other singletons.

This commit is contained in:
Adam Reichold 2015-11-28 12:54:03 +01:00
parent ebe85388a3
commit 68271b9279
3 changed files with 7 additions and 14 deletions

View File

@ -683,29 +683,22 @@ CameraConstantsStore::CameraConstantsStore()
{
}
static CameraConstantsStore *global_instance;
void CameraConstantsStore::initCameraConstants(Glib::ustring baseDir, Glib::ustring userSettingsDir)
void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir)
{
if (global_instance) {
// should only be called once during init.
abort();
}
global_instance = new CameraConstantsStore();
global_instance->parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));
parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));
Glib::ustring userFile(Glib::build_filename(userSettingsDir, "camconst.json"));
if (safe_file_test(userFile, Glib::FILE_TEST_EXISTS)) {
global_instance->parse_camera_constants_file(userFile);
parse_camera_constants_file(userFile);
}
}
CameraConstantsStore *
CameraConstantsStore::getInstance(void)
{
return global_instance;
static CameraConstantsStore instance_;
return &instance_;
}
CameraConst *

View File

@ -54,7 +54,7 @@ private:
bool parse_camera_constants_file(Glib::ustring filename);
public:
static void initCameraConstants(Glib::ustring baseDir, Glib::ustring userSettingsDir);
void init(Glib::ustring baseDir, Glib::ustring userSettingsDir);
static CameraConstantsStore *getInstance(void);
CameraConst *get(const char make[], const char model[]);
};

View File

@ -46,7 +46,7 @@ int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDi
dcpStore->init (baseDir + "/dcpprofiles");
CameraConstantsStore::initCameraConstants (baseDir, userSettingsDir);
CameraConstantsStore::getInstance ()->init (baseDir, userSettingsDir);
profileStore.init ();
ProcParams::init ();
Color::init ();