File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ PendingPushEvents::~PendingPushEvents()
1717 while ( e )
1818 {
1919 PushEvent * next = e -> next;
20- delete e ;
20+ deleteEvent ( e ) ;
2121 e = next;
2222 }
2323 }
@@ -28,12 +28,21 @@ PendingPushEvents::~PendingPushEvents()
2828 while ( e )
2929 {
3030 PushEvent * next = e -> next;
31- delete e ;
31+ deleteEvent ( e ) ;
3232 e = next;
3333 }
3434 }
3535}
3636
37+ void PendingPushEvents::deleteEvent ( PushEvent * event )
38+ {
39+ switchCspType ( event -> adapter () -> dataType (),
40+ [ event ]( auto tag ) {
41+ using T = typename decltype (tag)::type;
42+ delete static_cast <TypedPushEvent<T> *>( event );
43+ } );
44+ }
45+
3746void PendingPushEvents::addPendingEvent ( PushEvent * event )
3847{
3948 PushInputAdapter * adapter = event -> adapter ();
Original file line number Diff line number Diff line change @@ -38,6 +38,8 @@ class PendingPushEvents
3838 // backed up input ( if we merged adaptrers into one list we would have to rescan every cycle )
3939 using UngroupedEvents = std::unordered_map<PushInputAdapter*,EventList>;
4040
41+ void deleteEvent ( PushEvent * event );
42+
4143 UngroupedEvents m_ungroupedEvents;
4244 GroupEvents m_groupedEvents;
4345};
You can’t perform that action at this time.
0 commit comments