aboutsummaryrefslogtreecommitdiff
path: root/src/css.cc
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2014-02-16 21:10:29 +0100
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2014-02-16 21:10:29 +0100
commitcff615c76c1283cc75dae8a1e27ad2a1021f264a (patch)
treec1c9bf211e4757ac3b108550f51826cb7581ead2 /src/css.cc
parent4f763163081130c6df8fbe1aa2e4e025addf2348 (diff)
css: embed selectorList in CssSelector
Diffstat (limited to 'src/css.cc')
-rw-r--r--src/css.cc33
1 files changed, 15 insertions, 18 deletions
diff --git a/src/css.cc b/src/css.cc
index f43f9130..354ed543 100644
--- a/src/css.cc
+++ b/src/css.cc
@@ -109,19 +109,16 @@ CssSelector::CssSelector () {
refCount = 0;
matchCacheOffset = -1;
- selectorList = new lout::misc::SimpleVector
- <struct CombinatorAndSelector> (1);
- selectorList->increase ();
- cs = selectorList->getRef (selectorList->size () - 1);
+ selectorList.increase ();
+ cs = selectorList.getRef (selectorList.size () - 1);
cs->combinator = COMB_NONE;
cs->selector = new CssSimpleSelector ();
}
CssSelector::~CssSelector () {
- for (int i = selectorList->size () - 1; i >= 0; i--)
- delete selectorList->getRef (i)->selector;
- delete selectorList;
+ for (int i = selectorList.size () - 1; i >= 0; i--)
+ delete selectorList.getRef (i)->selector;
}
/**
@@ -135,7 +132,7 @@ bool CssSelector::match (Doctree *docTree, const DoctreeNode *node,
if (i < 0)
return true;
- struct CombinatorAndSelector *cs = selectorList->getRef (i);
+ struct CombinatorAndSelector *cs = selectorList.getRef (i);
CssSimpleSelector *sel = cs->selector;
switch (comb) {
@@ -177,16 +174,16 @@ void CssSelector::addSimpleSelector (Combinator c) {
struct CombinatorAndSelector *cs;
assert (matchCacheOffset == -1);
- selectorList->increase ();
- cs = selectorList->getRef (selectorList->size () - 1);
+ selectorList.increase ();
+ cs = selectorList.getRef (selectorList.size () - 1);
cs->combinator = c;
cs->selector = new CssSimpleSelector ();
}
bool CssSelector::checksPseudoClass () {
- for (int i = 0; i < selectorList->size (); i++)
- if (selectorList->getRef (i)->selector->getPseudoClass ())
+ for (int i = 0; i < selectorList.size (); i++)
+ if (selectorList.getRef (i)->selector->getPseudoClass ())
return true;
return false;
}
@@ -200,18 +197,18 @@ bool CssSelector::checksPseudoClass () {
int CssSelector::specificity () {
int spec = 0;
- for (int i = 0; i < selectorList->size (); i++)
- spec += selectorList->getRef (i)->selector->specificity ();
+ for (int i = 0; i < selectorList.size (); i++)
+ spec += selectorList.getRef (i)->selector->specificity ();
return spec;
}
void CssSelector::print () {
- for (int i = 0; i < selectorList->size (); i++) {
- selectorList->getRef (i)->selector->print ();
+ for (int i = 0; i < selectorList.size (); i++) {
+ selectorList.getRef (i)->selector->print ();
- if (i < selectorList->size () - 1) {
- switch (selectorList->getRef (i + 1)->combinator) {
+ if (i < selectorList.size () - 1) {
+ switch (selectorList.getRef (i + 1)->combinator) {
case COMB_CHILD:
fprintf (stderr, "> ");
break;