Fix of the preceding commit for gcc & clang:
Add a class name suffix to the s_cache static members of the StaticPrintConfig derived classes.
This commit is contained in:
parent
3731820c48
commit
38aca5047f
@ -1973,11 +1973,11 @@ std::string FullPrintConfig::validate()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Declare the static caches for each StaticPrintConfig derived class.
|
// Declare the static caches for each StaticPrintConfig derived class.
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::PrintObjectConfig> PrintObjectConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::PrintObjectConfig> PrintObjectConfig::s_cache_PrintObjectConfig;
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::PrintRegionConfig> PrintRegionConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::PrintRegionConfig> PrintRegionConfig::s_cache_PrintRegionConfig;
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::GCodeConfig> GCodeConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::GCodeConfig> GCodeConfig::s_cache_GCodeConfig;
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::PrintConfig> PrintConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::PrintConfig> PrintConfig::s_cache_PrintConfig;
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::HostConfig> HostConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::HostConfig> HostConfig::s_cache_HostConfig;
|
||||||
StaticPrintConfig::StaticCache<class Slic3r::FullPrintConfig> FullPrintConfig::s_cache;
|
StaticPrintConfig::StaticCache<class Slic3r::FullPrintConfig> FullPrintConfig::s_cache_FullPrintConfig;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -251,27 +251,27 @@ protected:
|
|||||||
public: \
|
public: \
|
||||||
/* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
|
/* Overrides ConfigBase::optptr(). Find ando/or create a ConfigOption instance for a given name. */ \
|
||||||
ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override \
|
ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override \
|
||||||
{ return s_cache.optptr(opt_key, this); } \
|
{ return s_cache_##CLASS_NAME.optptr(opt_key, this); } \
|
||||||
/* Overrides ConfigBase::keys(). Collect names of all configuration values maintained by this configuration store. */ \
|
/* Overrides ConfigBase::keys(). Collect names of all configuration values maintained by this configuration store. */ \
|
||||||
t_config_option_keys keys() const override { return s_cache.keys(); } \
|
t_config_option_keys keys() const override { return s_cache_##CLASS_NAME.keys(); } \
|
||||||
static const CLASS_NAME& defaults() { initialize_cache(); return s_cache.defaults(); } \
|
static const CLASS_NAME& defaults() { initialize_cache(); return s_cache_##CLASS_NAME.defaults(); } \
|
||||||
protected: \
|
private: \
|
||||||
static void initialize_cache() \
|
static void initialize_cache() \
|
||||||
{ \
|
{ \
|
||||||
if (! s_cache.initialized()) { \
|
if (! s_cache_##CLASS_NAME.initialized()) { \
|
||||||
CLASS_NAME *inst = new CLASS_NAME(1); \
|
CLASS_NAME *inst = new CLASS_NAME(1); \
|
||||||
inst->initialize(s_cache, (const char*)inst); \
|
inst->initialize(s_cache_##CLASS_NAME, (const char*)inst); \
|
||||||
s_cache.finalize(inst, inst->def()); \
|
s_cache_##CLASS_NAME.finalize(inst, inst->def()); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
/* Cache object holding a key/option map, a list of option keys and a copy of this static config initialized with the defaults. */ \
|
/* Cache object holding a key/option map, a list of option keys and a copy of this static config initialized with the defaults. */ \
|
||||||
static StaticCache<CLASS_NAME> s_cache;
|
static StaticCache<CLASS_NAME> s_cache_##CLASS_NAME;
|
||||||
|
|
||||||
#define STATIC_PRINT_CONFIG_CACHE(CLASS_NAME) \
|
#define STATIC_PRINT_CONFIG_CACHE(CLASS_NAME) \
|
||||||
STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME) \
|
STATIC_PRINT_CONFIG_CACHE_BASE(CLASS_NAME) \
|
||||||
public: \
|
public: \
|
||||||
/* Public default constructor will initialize the key/option cache and the default object copy if needed. */ \
|
/* Public default constructor will initialize the key/option cache and the default object copy if needed. */ \
|
||||||
CLASS_NAME() { initialize_cache(); *this = s_cache.defaults(); } \
|
CLASS_NAME() { initialize_cache(); *this = s_cache_##CLASS_NAME.defaults(); } \
|
||||||
protected: \
|
protected: \
|
||||||
/* Protected constructor to be called when compounded. */ \
|
/* Protected constructor to be called when compounded. */ \
|
||||||
CLASS_NAME(int) {}
|
CLASS_NAME(int) {}
|
||||||
@ -540,7 +540,7 @@ protected:
|
|||||||
class PrintConfig : public GCodeConfig
|
class PrintConfig : public GCodeConfig
|
||||||
{
|
{
|
||||||
STATIC_PRINT_CONFIG_CACHE_DERIVED(PrintConfig)
|
STATIC_PRINT_CONFIG_CACHE_DERIVED(PrintConfig)
|
||||||
PrintConfig() : GCodeConfig(0) { initialize_cache(); *this = s_cache.defaults(); }
|
PrintConfig() : GCodeConfig(0) { initialize_cache(); *this = s_cache_PrintConfig.defaults(); }
|
||||||
public:
|
public:
|
||||||
double min_object_distance() const;
|
double min_object_distance() const;
|
||||||
static double min_object_distance(const ConfigBase *config);
|
static double min_object_distance(const ConfigBase *config);
|
||||||
@ -697,7 +697,7 @@ class FullPrintConfig :
|
|||||||
public HostConfig
|
public HostConfig
|
||||||
{
|
{
|
||||||
STATIC_PRINT_CONFIG_CACHE_DERIVED(FullPrintConfig)
|
STATIC_PRINT_CONFIG_CACHE_DERIVED(FullPrintConfig)
|
||||||
FullPrintConfig() : PrintObjectConfig(0), PrintRegionConfig(0), PrintConfig(0), HostConfig(0) { initialize_cache(); *this = s_cache.defaults(); }
|
FullPrintConfig() : PrintObjectConfig(0), PrintRegionConfig(0), PrintConfig(0), HostConfig(0) { initialize_cache(); *this = s_cache_FullPrintConfig.defaults(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Validate the FullPrintConfig. Returns an empty string on success, otherwise an error message is returned.
|
// Validate the FullPrintConfig. Returns an empty string on success, otherwise an error message is returned.
|
||||||
|
Loading…
Reference in New Issue
Block a user