]> git.tdb.fi Git - poefilter.git/blobdiff - source/choicecondition.h
Tighten some parameters and return values
[poefilter.git] / source / choicecondition.h
index c2f7f0e66875bf465721574ff4cf244af3605ca4..9792f64c42f012963933b794ca09cba09acee6c7 100644 (file)
@@ -21,7 +21,7 @@ public:
 
        virtual ChoiceCondition<T> *clone() const;
        virtual bool can_merge(const Condition &, const CompoundCondition &) const;
-       virtual ChoiceCondition<T> *merge(const std::vector<Condition *> &, const CompoundCondition &) const;
+       virtual ChoiceCondition<T> *merge(const std::vector<const Condition *> &, const CompoundCondition &) const;
        virtual void add_lines(std::list<FilterStatement> &) const;
 };
 
@@ -68,14 +68,14 @@ bool ChoiceCondition<T>::can_merge(const Condition &other, const CompoundConditi
 }
 
 template<typename T>
-ChoiceCondition<T> *ChoiceCondition<T>::merge(const std::vector<Condition *> &conditions, const CompoundCondition &parent) const
+ChoiceCondition<T> *ChoiceCondition<T>::merge(const std::vector<const Condition *> &conditions, const CompoundCondition &parent) const
 {
        if(dynamic_cast<const OrCondition *>(&parent) && !conditions.empty())
        {
                ChoiceCondition<T> *result = new ChoiceCondition<T>(std::vector<Type>());
-               for(std::vector<Condition *>::const_iterator i=conditions.begin(); i!=conditions.end(); ++i)
+               for(std::vector<const Condition *>::const_iterator i=conditions.begin(); i!=conditions.end(); ++i)
                {
-                       const std::vector<Type> &v = static_cast<ChoiceCondition<T> *>(*i)->values;
+                       const std::vector<Type> &v = static_cast<const ChoiceCondition<T> *>(*i)->values;
                        for(typename std::vector<Type>::const_iterator j=v.begin(); j!=v.end(); ++j)
                                if(Msp::find(result->values, *j)==result->values.end())
                                        result->values.push_back(*j);