mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Fix some reference counters (memleak) (#8981)
Fix some reference counters (memleak) Map::dispatchEvent: Allocation safety using references
This commit is contained in:
parent
d77ea76476
commit
26b39f1eae
12 changed files with 30 additions and 37 deletions
17
src/map.h
17
src/map.h
|
@ -79,18 +79,7 @@ struct MapEditEvent
|
|||
|
||||
MapEditEvent() = default;
|
||||
|
||||
MapEditEvent * clone()
|
||||
{
|
||||
MapEditEvent *event = new MapEditEvent();
|
||||
event->type = type;
|
||||
event->p = p;
|
||||
event->n = n;
|
||||
event->modified_blocks = modified_blocks;
|
||||
event->is_private_change = is_private_change;
|
||||
return event;
|
||||
}
|
||||
|
||||
VoxelArea getArea()
|
||||
VoxelArea getArea() const
|
||||
{
|
||||
switch(type){
|
||||
case MEET_ADDNODE:
|
||||
|
@ -125,7 +114,7 @@ class MapEventReceiver
|
|||
{
|
||||
public:
|
||||
// event shall be deleted by caller after the call.
|
||||
virtual void onMapEditEvent(MapEditEvent *event) = 0;
|
||||
virtual void onMapEditEvent(const MapEditEvent &event) = 0;
|
||||
};
|
||||
|
||||
class Map /*: public NodeContainer*/
|
||||
|
@ -152,7 +141,7 @@ public:
|
|||
void addEventReceiver(MapEventReceiver *event_receiver);
|
||||
void removeEventReceiver(MapEventReceiver *event_receiver);
|
||||
// event shall be deleted by caller after the call.
|
||||
void dispatchEvent(MapEditEvent *event);
|
||||
void dispatchEvent(const MapEditEvent &event);
|
||||
|
||||
// On failure returns NULL
|
||||
MapSector * getSectorNoGenerateNoLock(v2s16 p2d);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue