aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/css.cc19
-rw-r--r--src/css.hh10
2 files changed, 15 insertions, 14 deletions
diff --git a/src/css.cc b/src/css.cc
index 30c5bc55..a486e834 100644
--- a/src/css.cc
+++ b/src/css.cc
@@ -25,25 +25,16 @@ void CssProperty::print () {
}
CssPropertyList::~CssPropertyList () {
- if (ownerOfStrings) {
- for (int i = 0; i < size (); i++) {
- CssProperty *p = getRef (i);
-
- switch (p->name) {
- case CssProperty::CSS_PROPERTY_CONTENT:
- case CssProperty::CSS_PROPERTY_FONT_FAMILY:
- dFree (p->value.strVal);
- break;
- default:
- break;
- }
- }
- }
+ if (ownerOfStrings)
+ for (int i = 0; i < size (); i++)
+ getRef (i)->free ();
}
void CssPropertyList::set (CssProperty::Name name, CssProperty::Value value) {
for (int i = 0; i < size (); i++)
if (getRef (i)->name == name) {
+ if (ownerOfStrings)
+ getRef (i)->free ();
getRef (i)->value = value;
return;
}
diff --git a/src/css.hh b/src/css.hh
index 0151b7f7..63a00ffc 100644
--- a/src/css.hh
+++ b/src/css.hh
@@ -160,6 +160,16 @@ class CssProperty {
Name name;
Value value;
+ void free () {
+ switch (name) {
+ case CssProperty::CSS_PROPERTY_CONTENT:
+ case CssProperty::CSS_PROPERTY_FONT_FAMILY:
+ dFree (value.strVal);
+ break;
+ default:
+ break;
+ }
+ }
void print ();
};