View Issue Details

IDProjectCategoryView StatusLast Update
0002820The Dark ModCodingpublic06.08.2011 16:11
ReportergraymanAssigned Tograyman 
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 1.06 
Target VersionTDM 1.07Fixed in VersionTDM 1.07 
Summary0002820: Unnecessary event posting during map startup can lead to overrunning the event queue
DescriptionThe event queue has a fixed size of 8192 entries.

Every entity posts an event that checks whether that entity is loot or belongs in the player's inventory, even though the vast majority of entities fail these tests.

Large maps with many entities can easily overrun the event queue due to this.
Steps To ReproduceThe only map that has overrun the queue to date is a current WIP by Bikerdude and Melan. St. Albans Cathedral came close, topping out at 8066 posted events.
TagsNo tags attached.

Activities

grayman

grayman

22.07.2011 19:24

administrator   ~0003948

Don’t post an event during frame 0 that handles loot and inventory IF the entity is not loot and isn’t in inventory.

rev. 4930:

entity.cpp
tels

tels

05.08.2011 17:59

reporter   ~0003971

I'd like to re-open this. Each moveable entity also posts an event to set its owner from the "owner" spawnarg, however, 99.99% of moveables do not have this spawnarg set, thus posting unnec. events.

While currently no maps overflow due to this, it still can lead to overflows (e.g. when you have a map with 8000 moveables, 8000 events would be posted, in addition to the other events).

The offending line is 247 in game/moveable.cpp - the check for having an owner spawnarg != "" should be likely done there before posting the event.
grayman

grayman

06.08.2011 16:11

administrator   ~0003973

A subsequent requested change to not post an event where moveables check whether their ‘owner’ spawnarg is set.

rev. 4939:

moveable.cpp

Issue History

Date Modified Username Field Change
22.07.2011 16:52 grayman New Issue
22.07.2011 16:52 grayman Status new => assigned
22.07.2011 16:52 grayman Assigned To => grayman
22.07.2011 19:24 grayman Note Added: 0003948
22.07.2011 19:24 grayman Status assigned => resolved
22.07.2011 19:24 grayman Resolution open => fixed
22.07.2011 19:24 grayman Fixed in Version => TDM 1.07
05.08.2011 17:59 tels Note Added: 0003971
05.08.2011 18:00 tels Status resolved => feedback
05.08.2011 18:00 tels Resolution fixed => reopened
06.08.2011 16:11 grayman Note Added: 0003973
06.08.2011 16:11 grayman Status feedback => assigned
06.08.2011 16:11 grayman Status assigned => resolved
06.08.2011 16:11 grayman Resolution reopened => fixed