summaryrefslogtreecommitdiff
path: root/src/piraha/Or.cc
diff options
context:
space:
mode:
authorsbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2014-02-18 17:56:10 +0000
committersbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2014-02-18 17:56:10 +0000
commit375a3181eca67ade911daab563ff02cef15ddda4 (patch)
tree516108ec7b9072b790a9bbb66d25ec711827d321 /src/piraha/Or.cc
parent7bab271c2b988a8feb0e2aed226fbe563bdc674f (diff)
Make it possible to parse very large paramter files and to do it quickly.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@5086 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/piraha/Or.cc')
-rw-r--r--src/piraha/Or.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/piraha/Or.cc b/src/piraha/Or.cc
index d9633e3e..6195958a 100644
--- a/src/piraha/Or.cc
+++ b/src/piraha/Or.cc
@@ -22,11 +22,10 @@ Or::Or(Pattern *p,...) : patterns() {
bool Or::match(Matcher *m) {
typedef vector<smart_ptr<Pattern> >::iterator pattern_iter;
int save = m->pos;
- vector<smart_ptr<Group> > chSave;
- chSave = m->children;
+ int chSave = m->children->size();
for(pattern_iter p = patterns.begin();p != patterns.end();++p) {
m->pos = save;
- m->children = chSave;
+ m->children->resize(chSave);
if((*p)->match(m))
return true;
}