From e729f7b898e665c261f7f23a754a7ed122d4d57f Mon Sep 17 00:00:00 2001 From: Garux Date: Tue, 2 Feb 2021 00:26:21 +0300 Subject: [PATCH] prevent stack overflow --- tools/quake3/q3map2/light_bounce.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/quake3/q3map2/light_bounce.cpp b/tools/quake3/q3map2/light_bounce.cpp index e036fe0f..c4c5464e 100644 --- a/tools/quake3/q3map2/light_bounce.cpp +++ b/tools/quake3/q3map2/light_bounce.cpp @@ -441,8 +441,8 @@ static void RadSubdivideDiffuseLight( int lightmapNum, bspDrawSurface_t *ds, raw for ( i = 0; i < 3; i++ ) { if ( maxs[ i ] - mins[ i ] > subdivide ) { - radWinding_t front, back; - + auto front = std::make_unique(); + auto back = std::make_unique(); /* make axial plane */ VectorClear( normal ); @@ -450,11 +450,11 @@ static void RadSubdivideDiffuseLight( int lightmapNum, bspDrawSurface_t *ds, raw dist = ( maxs[ i ] + mins[ i ] ) * 0.5f; /* clip the winding */ - RadClipWindingEpsilon( rw, normal, dist, RADIOSITY_CLIP_EPSILON, &front, &back, cw ); + RadClipWindingEpsilon( rw, normal, dist, RADIOSITY_CLIP_EPSILON, front.get(), back.get(), cw ); /* recurse */ - RadSubdivideDiffuseLight( lightmapNum, ds, lm, si, scale, subdivide, &front, cw ); - RadSubdivideDiffuseLight( lightmapNum, ds, lm, si, scale, subdivide, &back, cw ); + RadSubdivideDiffuseLight( lightmapNum, ds, lm, si, scale, subdivide, front.get(), cw ); + RadSubdivideDiffuseLight( lightmapNum, ds, lm, si, scale, subdivide, back.get(), cw ); return; } }