Do not use marker cache when index changes

multi_trace
erikkaashoek 5 years ago
parent 90d19a9dfd
commit 5f71fc0bf4

@ -283,16 +283,20 @@ index_to_value(const int i)
float marker_cache[MARKERS_MAX]; float marker_cache[MARKERS_MAX];
bool marker_cache_valid[MARKERS_MAX]; bool marker_cache_valid[MARKERS_MAX];
int32_t marker_cache_index[MARKERS_MAX];
void void
clear_marker_cache(void) clear_marker_cache(void)
{ {
for (int i = 0; i<MARKERS_MAX; i++) for (int i = 0; i<MARKERS_MAX; i++) {
marker_cache_valid[i] = false; marker_cache_valid[i] = false;
}
} }
float float
marker_to_value(const int i) marker_to_value(const int i)
{ {
if (marker_cache_valid[i]) if (marker_cache_valid[i] && marker_cache_index[i] == markers[i].index)
return marker_cache[i]; return marker_cache[i];
float *ref_marker_levels; float *ref_marker_levels;
if (markers[i].mtype & M_STORED ) if (markers[i].mtype & M_STORED )
@ -320,6 +324,7 @@ marker_to_value(const int i)
; ;
} }
marker_cache_valid[i] = true; marker_cache_valid[i] = true;
marker_cache_index[i] = markers[i].index;
marker_cache[i] = v; marker_cache[i] = v;
return(v); return(v);
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.