Skip to content

Commit dbabad3

Browse files
committed
Further type fixes for issues with negative indexing
1 parent f633905 commit dbabad3

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

FrameLib_Objects/Vector/FrameLib_Peaks.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ bool checkPeak<1>(const double *data, double threshold, long i)
140140

141141
// Refinement
142142

143-
template <void Func(double *, double *, const double *, unsigned long, unsigned long)>
143+
template <void Func(double *, double *, const double *, unsigned long, long)>
144144
void refinePeaks(double *positions, double *values, const double *data, unsigned long *peaks, unsigned long nPeaks)
145145
{
146146
for (unsigned long i = 0; i < nPeaks; i++)
147-
Func(positions, values, data, i, peaks[i]);
147+
Func(positions, values, data, i, static_cast<long>(peaks[i]));
148148
}
149149

150150
void parabolicInterp(double& position, double& value, double idx, double vm1, double v_0, double vp1)
@@ -156,18 +156,18 @@ void parabolicInterp(double& position, double& value, double idx, double vm1, do
156156
value = v_0 - (0.25 * (vm1 - vp1) * correction);
157157
}
158158

159-
void refineNone(double *positions, double *values, const double *data, unsigned long peak, unsigned long idx)
159+
void refineNone(double *positions, double *values, const double *data, unsigned long peak, long idx)
160160
{
161161
positions[peak] = idx;
162162
values[peak] = data[idx];
163163
}
164164

165-
void refineParabolic(double *positions, double *values, const double *data, unsigned long peak, unsigned long idx)
165+
void refineParabolic(double *positions, double *values, const double *data, unsigned long peak, long idx)
166166
{
167167
parabolicInterp(positions[peak], values[peak], idx, data[idx-1], data[idx], data[idx+1]);
168168
}
169169

170-
void refineParabolicLog(double *positions, double *values, const double *data, unsigned long peak, unsigned long idx)
170+
void refineParabolicLog(double *positions, double *values, const double *data, unsigned long peak, long idx)
171171
{
172172
// Take log values (avoiding values that are too low) - doesn't work for negative values
173173
// N.B. we assume a max of -80dB difference between samples to prevent extreme overshoot

0 commit comments

Comments
 (0)