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:
Curve (const ControlList& cl);
bool rt_safe_get_vector (double x0, double x1, float *arg, int32_t veclen);
void 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) const;
void solve ();
void solve () const;
void mark_dirty() const { _dirty = true; }
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;
const ControlList& _list;

View File

@ -42,7 +42,7 @@ Curve::Curve (const ControlList& cl)
}
void
Curve::solve ()
Curve::solve () const
{
uint32_t npoints;
@ -169,7 +169,7 @@ Curve::solve ()
}
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);
@ -182,14 +182,14 @@ Curve::rt_safe_get_vector (double x0, double x1, float *vec, int32_t veclen)
}
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());
_get_vector (x0, x1, vec, veclen);
}
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;
int32_t i;
@ -329,7 +329,7 @@ Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen)
}
double
Curve::multipoint_eval (double x)
Curve::multipoint_eval (double x) const
{
pair<ControlList::EventList::const_iterator,ControlList::EventList::const_iterator> range;