aboutsummaryrefslogtreecommitdiff
path: root/src/css.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/css.cc')
-rw-r--r--src/css.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/css.cc b/src/css.cc
index 5fb5c272..6f4243f7 100644
--- a/src/css.cc
+++ b/src/css.cc
@@ -201,21 +201,26 @@ void CssStyleSheet::addRule (CssRule *rule) {
CssSimpleSelector *top = rule->selector->top ();
lout::misc::SimpleVector <CssRule*> *ruleList = NULL;
lout::object::Pointer *ruleListP;
+ lout::object::String *string;
if (top->id) {
- ruleListP = idTable->get (new lout::object::String (top->id));
+ string = new lout::object::String (top->id);
+ ruleListP = idTable->get (string);
if (ruleListP == NULL) {
ruleList = new lout::misc::SimpleVector <CssRule*> (1);
- idTable->put (new lout::object::String (top->id), new lout::object::Pointer (ruleList));
+ idTable->put (string, new lout::object::Pointer (ruleList));
} else {
+ delete string;
ruleList = (lout::misc::SimpleVector <CssRule*>*) ruleListP->getValue ();
}
} else if (top->klass) {
- ruleListP = classTable->get (new lout::object::String (top->klass));
+ string = new lout::object::String (top->klass);
+ ruleListP = classTable->get (string);
if (ruleListP == NULL) {
ruleList = new lout::misc::SimpleVector <CssRule*> (1);
- classTable->put (new lout::object::String (top->klass), new lout::object::Pointer (ruleList));
+ classTable->put (string, new lout::object::Pointer (ruleList));
} else {
+ delete string;
ruleList = (lout::misc::SimpleVector <CssRule*>*) ruleListP->getValue ();
}
} else if (top->element >= 0 && top->element < ntags) {