Skip to content

Commit a5a054f

Browse files
committed
[ CID 15229 ] Fix incorrect deallocator issue
1 parent fee70d3 commit a5a054f

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

engine/src/gradient.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,8 +1684,10 @@ MCGradientCombiner *MCGradientFillCreateCombiner(MCGradientFill *p_gradient, MCR
16841684
{
16851685
s_gradient_affine_combiner.end = gradient_bilinear_affine_combiner_end;
16861686
s_gradient_affine_combiner.buffer_width = GRADIENT_AA_SCALE * r_clip.width;
1687-
s_gradient_affine_combiner.buffer = new uint4[GRADIENT_AA_SCALE * s_gradient_affine_combiner.buffer_width];
1688-
1687+
1688+
if (!MCMemoryNewArray(GRADIENT_AA_SCALE * s_gradient_affine_combiner.buffer_width, s_gradient_affine_combiner.buffer))
1689+
return NULL;
1690+
16891691
s_gradient_affine_combiner.x_inc += (s_gradient_affine_combiner.x_coef_a + s_gradient_affine_combiner.x_coef_b) >> 2;
16901692
s_gradient_affine_combiner.y_inc += (s_gradient_affine_combiner.y_coef_a + s_gradient_affine_combiner.y_coef_b) >> 2;
16911693
switch (t_kind)
@@ -1712,7 +1714,7 @@ MCGradientCombiner *MCGradientFillCreateCombiner(MCGradientFill *p_gradient, MCR
17121714
s_gradient_affine_combiner.combine = MCGradientFillBilinearCombine<kMCGradientKindSqrtXY>;
17131715
return &s_gradient_affine_combiner;
17141716
default:
1715-
delete s_gradient_affine_combiner.buffer;
1717+
MCMemoryDeleteArray(s_gradient_affine_combiner.buffer);
17161718
return NULL;
17171719
}
17181720
}

0 commit comments

Comments
 (0)