diff --git a/src/modules/systemlib/param/param.c b/src/modules/systemlib/param/param.c index 2c170af023..dea10347fe 100644 --- a/src/modules/systemlib/param/param.c +++ b/src/modules/systemlib/param/param.c @@ -543,6 +543,7 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ .val.p = NULL, .unsaved = false }; + params_changed = true; /* add it to the array and sort */ utarray_push_back(param_values, &buf); @@ -556,12 +557,12 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_ switch (param_type(param)) { case PARAM_TYPE_INT32: - params_changed = s->val.i != *(int32_t *)val; + params_changed = params_changed || s->val.i != *(int32_t *)val; s->val.i = *(int32_t *)val; break; case PARAM_TYPE_FLOAT: - params_changed = fabsf(s->val.f - * (float *)val) > FLT_EPSILON; + params_changed = params_changed || fabsf(s->val.f - * (float *)val) > FLT_EPSILON; s->val.f = *(float *)val; break;