fix leaks in SkConf
These leaks were small and would only happen with non-default runtime configuration things set, but they were still leaks and they should be squished. Valgrind reported leaks pre-patch, and all the rtconf leaks are gone after patch. BUG=skia:1722 R=reed@google.com Author: humper@google.com Review URL: https://codereview.chromium.org/136963004 git-svn-id: http://skia.googlecode.com/svn/trunk@13269 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
973d1211c6
commit
bf6a6d4504
@ -74,6 +74,7 @@ protected:
|
|||||||
class SkRTConfRegistry {
|
class SkRTConfRegistry {
|
||||||
public:
|
public:
|
||||||
SkRTConfRegistry();
|
SkRTConfRegistry();
|
||||||
|
~SkRTConfRegistry();
|
||||||
void printAll(const char *fname = NULL) const;
|
void printAll(const char *fname = NULL) const;
|
||||||
bool hasNonDefault() const;
|
bool hasNonDefault() const;
|
||||||
void printNonDefault(const char *fname = NULL) const;
|
void printNonDefault(const char *fname = NULL) const;
|
||||||
|
@ -44,8 +44,8 @@ SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkString* key = new SkString(keyptr);
|
SkString* key = SkNEW_ARGS(SkString,(keyptr));
|
||||||
SkString* val = new SkString(valptr);
|
SkString* val = SkNEW_ARGS(SkString,(valptr));
|
||||||
|
|
||||||
fConfigFileKeys.append(1, &key);
|
fConfigFileKeys.append(1, &key);
|
||||||
fConfigFileValues.append(1, &val);
|
fConfigFileValues.append(1, &val);
|
||||||
@ -53,6 +53,20 @@ SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) {
|
|||||||
sk_fclose(fp);
|
sk_fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SkRTConfRegistry::~SkRTConfRegistry() {
|
||||||
|
ConfMap::Iter iter(fConfs);
|
||||||
|
SkTDArray<SkRTConfBase *> *confArray;
|
||||||
|
|
||||||
|
while (iter.next(&confArray)) {
|
||||||
|
delete confArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0 ; i < fConfigFileKeys.count() ; i++) {
|
||||||
|
SkDELETE(fConfigFileKeys[i]);
|
||||||
|
SkDELETE(fConfigFileValues[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char *SkRTConfRegistry::configFileLocation() const {
|
const char *SkRTConfRegistry::configFileLocation() const {
|
||||||
return "skia.conf"; // for now -- should probably do something fancier like home directories or whatever.
|
return "skia.conf"; // for now -- should probably do something fancier like home directories or whatever.
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user