13
0

add const-ness: Evaluating a curve does not change it.

Note that the ControlList's lock and cache are already mutable.
This commit is contained in:
Robin Gareus 2017-06-03 12:30:26 +02:00
parent 0c57199a6c
commit c2cb60ea03
2 changed files with 10 additions and 10 deletions

View File

@ -33,17 +33,17 @@ class LIBEVORAL_API Curve : public boost::noncopyable
public: public:
Curve (const ControlList& cl); Curve (const ControlList& cl);
bool rt_safe_get_vector (double x0, double x1, float *arg, int32_t veclen); bool rt_safe_get_vector (double x0, double x1, float *arg, int32_t veclen) const;
void get_vector (double x0, double x1, float *arg, int32_t veclen); void get_vector (double x0, double x1, float *arg, int32_t veclen) const;
void solve (); void solve () const;
void mark_dirty() const { _dirty = true; } void mark_dirty() const { _dirty = true; }
private: private:
double multipoint_eval (double x); double multipoint_eval (double x) const;
void _get_vector (double x0, double x1, float *arg, int32_t veclen); void _get_vector (double x0, double x1, float *arg, int32_t veclen) const;
mutable bool _dirty; mutable bool _dirty;
const ControlList& _list; const ControlList& _list;

View File

@ -42,7 +42,7 @@ Curve::Curve (const ControlList& cl)
} }
void void
Curve::solve () Curve::solve () const
{ {
uint32_t npoints; uint32_t npoints;
@ -169,7 +169,7 @@ Curve::solve ()
} }
bool bool
Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen) Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen) const
{ {
Glib::Threads::RWLock::ReaderLock lm(_list.lock(), Glib::Threads::TRY_LOCK); Glib::Threads::RWLock::ReaderLock lm(_list.lock(), Glib::Threads::TRY_LOCK);
@ -182,14 +182,14 @@ Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen)
} }
void void
Curve::get_vector (double x0, double x1, float *vec, int32_t veclen) Curve::get_vector (double x0, double x1, float *vec, int32_t veclen) const
{ {
Glib::Threads::RWLock::ReaderLock lm(_list.lock()); Glib::Threads::RWLock::ReaderLock lm(_list.lock());
_get_vector (x0, x1, vec, veclen); _get_vector (x0, x1, vec, veclen);
} }
void void
Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen) Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen) const
{ {
double rx, lx, hx, max_x, min_x; double rx, lx, hx, max_x, min_x;
int32_t i; int32_t i;
@ -329,7 +329,7 @@ Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen)
} }
double double
Curve::multipoint_eval (double x) Curve::multipoint_eval (double x) const
{ {
pair<ControlList::EventList::const_iterator,ControlList::EventList::const_iterator> range; pair<ControlList::EventList::const_iterator,ControlList::EventList::const_iterator> range;