Regularize the camera constant store singleton to use a function local static like most other singletons.
This commit is contained in:
parent
ebe85388a3
commit
68271b9279
@ -683,29 +683,22 @@ CameraConstantsStore::CameraConstantsStore()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static CameraConstantsStore *global_instance;
|
void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir)
|
||||||
|
|
||||||
void CameraConstantsStore::initCameraConstants(Glib::ustring baseDir, Glib::ustring userSettingsDir)
|
|
||||||
{
|
{
|
||||||
if (global_instance) {
|
parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));
|
||||||
// should only be called once during init.
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
|
|
||||||
global_instance = new CameraConstantsStore();
|
|
||||||
global_instance->parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));
|
|
||||||
|
|
||||||
Glib::ustring userFile(Glib::build_filename(userSettingsDir, "camconst.json"));
|
Glib::ustring userFile(Glib::build_filename(userSettingsDir, "camconst.json"));
|
||||||
|
|
||||||
if (safe_file_test(userFile, Glib::FILE_TEST_EXISTS)) {
|
if (safe_file_test(userFile, Glib::FILE_TEST_EXISTS)) {
|
||||||
global_instance->parse_camera_constants_file(userFile);
|
parse_camera_constants_file(userFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CameraConstantsStore *
|
CameraConstantsStore *
|
||||||
CameraConstantsStore::getInstance(void)
|
CameraConstantsStore::getInstance(void)
|
||||||
{
|
{
|
||||||
return global_instance;
|
static CameraConstantsStore instance_;
|
||||||
|
return &instance_;
|
||||||
}
|
}
|
||||||
|
|
||||||
CameraConst *
|
CameraConst *
|
||||||
|
@ -54,7 +54,7 @@ private:
|
|||||||
bool parse_camera_constants_file(Glib::ustring filename);
|
bool parse_camera_constants_file(Glib::ustring filename);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void initCameraConstants(Glib::ustring baseDir, Glib::ustring userSettingsDir);
|
void init(Glib::ustring baseDir, Glib::ustring userSettingsDir);
|
||||||
static CameraConstantsStore *getInstance(void);
|
static CameraConstantsStore *getInstance(void);
|
||||||
CameraConst *get(const char make[], const char model[]);
|
CameraConst *get(const char make[], const char model[]);
|
||||||
};
|
};
|
||||||
|
@ -46,7 +46,7 @@ int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDi
|
|||||||
|
|
||||||
dcpStore->init (baseDir + "/dcpprofiles");
|
dcpStore->init (baseDir + "/dcpprofiles");
|
||||||
|
|
||||||
CameraConstantsStore::initCameraConstants (baseDir, userSettingsDir);
|
CameraConstantsStore::getInstance ()->init (baseDir, userSettingsDir);
|
||||||
profileStore.init ();
|
profileStore.init ();
|
||||||
ProcParams::init ();
|
ProcParams::init ();
|
||||||
Color::init ();
|
Color::init ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user