diff options
Diffstat (limited to 'src/styleengine.cc')
-rw-r--r-- | src/styleengine.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/styleengine.cc b/src/styleengine.cc index 4839931c..54d6a8f5 100644 --- a/src/styleengine.cc +++ b/src/styleengine.cc @@ -100,7 +100,9 @@ void StyleEngine::setId (const char *id) { void StyleEngine::setClass (const char *klass) { Node *n = stack->getRef (stack->size () - 1); assert (n->klass == NULL); - n->klass = dStrdup (klass); + n->klass = new lout::misc::SimpleVector<char*>(1); + n->klass->increase (); + n->klass->set (0, dStrdup (klass)); }; void StyleEngine::setStyle (const char *style) { @@ -161,8 +163,11 @@ void StyleEngine::endElement (int element) { n->wordStyle->unref (); if (n->id) dFree ((void*) n->id); - if (n->klass) - dFree ((void*) n->klass); + if (n->klass) { + for (int i = 0; i < n->klass->size (); i++) + dFree (n->klass->get(i)); + delete n->klass; + } if (n->styleAttribute) dFree ((void*) n->styleAttribute); |