From e2026dca38876da04225167f0a49523b60f8c823 Mon Sep 17 00:00:00 2001 From: Gene Date: Mon, 7 Apr 2025 13:57:28 -0700 Subject: [PATCH] Only allocate when needed --- src/playsim/a_dynlight.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/playsim/a_dynlight.cpp b/src/playsim/a_dynlight.cpp index 7be316cb8..d08ee10ec 100644 --- a/src/playsim/a_dynlight.cpp +++ b/src/playsim/a_dynlight.cpp @@ -435,28 +435,27 @@ void FDynamicLight::AddLightNode(FSection *section, side_t *sidedef) touchlists->wall_tlist.Insert(sidedef, sidedef); }; - FLightNode * node = new FLightNode; - node->lightsource = this; - if (section) { - node->targ = section; - auto flatLightList = Level->lightlists.flat_dlist.CheckKey(section); if (flatLightList) { if (!flatLightList->CheckKey(this)) { + FLightNode * node = new FLightNode; + node->lightsource = this; + node->targ = section; + flatLightList->Insert(this, node); updateFlatTList(section); } - else - { - delete node; - } } else { + FLightNode * node = new FLightNode; + node->lightsource = this; + node->targ = section; + TMap u; u.Insert(this, node); Level->lightlists.flat_dlist.Insert(section, u); @@ -465,23 +464,25 @@ void FDynamicLight::AddLightNode(FSection *section, side_t *sidedef) } else if (sidedef) { - node->targ = sidedef; - auto wallLightList = Level->lightlists.wall_dlist.CheckKey(sidedef); if (wallLightList) { if (!wallLightList->CheckKey(this)) { + FLightNode * node = new FLightNode; + node->lightsource = this; + node->targ = sidedef; + wallLightList->Insert(this, node); updateWallTList(sidedef); } - else - { - delete node; - } } else { + FLightNode * node = new FLightNode; + node->lightsource = this; + node->targ = sidedef; + TMap u; u.Insert(this, node); Level->lightlists.wall_dlist.Insert(sidedef, u);