move template specializations to inline functions in the header to make windows happy again

BUG=

Review URL: https://codereview.appspot.com/7099053

git-svn-id: http://skia.googlecode.com/svn/trunk@7164 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
humper@google.com 2013-01-14 20:11:00 +00:00
parent 18a48c3c1c
commit 810ae48f82
2 changed files with 38 additions and 38 deletions

View File

@ -122,6 +122,42 @@ void SkRTConf<T>::doPrint(char *s) const {
sprintf(s, "%-30.30s", "How do I print myself??");
}
template<> inline void SkRTConf<bool>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%s # [%s]", fValue ? "true" : "false", fDefault ? "true" : "false");
sprintf(s, "%-30.30s", tmp);
}
template<> inline void SkRTConf<int>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%d # [%d]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> inline void SkRTConf<unsigned int>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%u # [%u]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> inline void SkRTConf<float>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> inline void SkRTConf<double>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> inline void SkRTConf<const char *>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%s # [%s]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<typename T>
bool SkRTConf<T>::equals(const SkRTConfBase *conf) const {
// static_cast here is okay because there's only one kind of child class.

View File

@ -76,7 +76,7 @@ void SkRTConfRegistry::possiblyDumpFile() const {
// declared a correponding configuration object somewhere.
void SkRTConfRegistry::validate() const {
for (int i = 0 ; i < fConfigFileKeys.count() ; i++) {
if (fConfs.find(fConfigFileKeys[i]->c_str()) == -1) {
if (fConfs.find(fConfigFileKeys[i]->c_str())) {
SkDebugf("WARNING: You have config value %s in your configuration file, but I've never heard of that.\n", fConfigFileKeys[i]->c_str());
}
}
@ -262,7 +262,7 @@ template <typename T> void SkRTConfRegistry::set(const char *name, T value) {
for (SkRTConfBase **confBase = confArray->begin(); confBase != confArray->end(); confBase++) {
// static_cast here is okay because there's only one kind of child class.
SkRTConf<bool> *concrete = static_cast<SkRTConf<bool> *>(*confBase);
SkRTConf<T> *concrete = static_cast<SkRTConf<T> *>(*confBase);
if (concrete) {
concrete->set(value);
@ -277,42 +277,6 @@ template void SkRTConfRegistry::set(const char *name, float value);
template void SkRTConfRegistry::set(const char *name, double value);
template void SkRTConfRegistry::set(const char *name, char * value);
template<> void SkRTConf<bool>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%s # [%s]", fValue ? "true" : "false", fDefault ? "true" : "false");
sprintf(s, "%-30.30s", tmp);
}
template<> void SkRTConf<int>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%d # [%d]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> void SkRTConf<unsigned int>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%u # [%u]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> void SkRTConf<float>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> void SkRTConf<double>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%6.6f # [%6.6f]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
template<> void SkRTConf<const char *>::doPrint(char *s) const {
char tmp[30];
sprintf(tmp, "%s # [%s]", fValue, fDefault);
sprintf(s, "%-30.30s", tmp);
}
SkRTConfRegistry &skRTConfRegistry() {
static SkRTConfRegistry r;
return r;