summaryrefslogtreecommitdiff
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
parent4f763163081130c6df8fbe1aa2e4e025addf2348 (diff)
css: embed selectorList in CssSelector
-rw-r--r--src/css.cc33
-rw-r--r--src/css.hh8
2 files changed, 19 insertions, 22 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;
diff --git a/src/css.hh b/src/css.hh
index 68abbb90..45dc533f 100644
--- a/src/css.hh
+++ b/src/css.hh
@@ -390,7 +390,7 @@ class CssSelector {
};
int refCount, matchCacheOffset;
- lout::misc::SimpleVector <struct CombinatorAndSelector> *selectorList;
+ lout::misc::SimpleVector <struct CombinatorAndSelector> selectorList;
bool match (Doctree *dt, const DoctreeNode *node, int i, Combinator comb,
MatchCache *matchCache);
@@ -400,12 +400,12 @@ class CssSelector {
~CssSelector ();
void addSimpleSelector (Combinator c);
inline CssSimpleSelector *top () {
- return selectorList->getRef (selectorList->size () - 1)->selector;
+ return selectorList.getRef (selectorList.size () - 1)->selector;
};
- inline int size () { return selectorList->size (); };
+ inline int size () { return selectorList.size (); };
inline bool match (Doctree *dt, const DoctreeNode *node,
MatchCache *matchCache) {
- return match (dt, node, selectorList->size () - 1, COMB_NONE,
+ return match (dt, node, selectorList.size () - 1, COMB_NONE,
matchCache);
};
inline void setMatchCacheOffset (int mo) {