Cycles: Fix uninitialized memory access when comparing curve mapping nodes
The issue is coming from the fact that float3 is actually 16 bytes aligned data type and the "padding" was not initialized. This caused memcmp() to access non-initialized memory.
This commit is contained in:
parent
a63a31dd12
commit
5ce95df2c6
|
@ -174,22 +174,19 @@ static inline void curvemapping_color_to_array(BL::CurveMapping& cumap,
|
|||
|
||||
if(rgb_curve) {
|
||||
BL::CurveMap mapI = cumap.curves[3];
|
||||
|
||||
for(int i = 0; i < size; i++) {
|
||||
float t = min_x + (float)i/(float)(size-1) * range_x;
|
||||
|
||||
data[i][0] = mapR.evaluate(mapI.evaluate(t));
|
||||
data[i][1] = mapG.evaluate(mapI.evaluate(t));
|
||||
data[i][2] = mapB.evaluate(mapI.evaluate(t));
|
||||
const float t = min_x + (float)i/(float)(size-1) * range_x;
|
||||
data[i] = make_float3(mapR.evaluate(mapI.evaluate(t)),
|
||||
mapG.evaluate(mapI.evaluate(t)),
|
||||
mapB.evaluate(mapI.evaluate(t)));
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(int i = 0; i < size; i++) {
|
||||
float t = min_x + (float)i/(float)(size-1) * range_x;
|
||||
|
||||
data[i][0] = mapR.evaluate(t);
|
||||
data[i][1] = mapG.evaluate(t);
|
||||
data[i][2] = mapB.evaluate(t);
|
||||
data[i] = make_float3(mapR.evaluate(t),
|
||||
mapG.evaluate(t),
|
||||
mapB.evaluate(t));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue