diff options
author | sbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2014-02-18 17:56:10 +0000 |
---|---|---|
committer | sbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2014-02-18 17:56:10 +0000 |
commit | 375a3181eca67ade911daab563ff02cef15ddda4 (patch) | |
tree | 516108ec7b9072b790a9bbb66d25ec711827d321 /src/piraha/Or.cc | |
parent | 7bab271c2b988a8feb0e2aed226fbe563bdc674f (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.cc | 5 |
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; } |