Skip to content

Commit 7e60545

Browse files
committed
visualizer: guard against null visualization in mobility deletion handler
A mobility module matching the filter but with no created visualization (it never emitted a state-change signal, or was filtered out) could be deleted, making receiveSignal dereference a null visualization. Guard the lookup, matching the new GeoHorizon/GeoSkyView siblings.
1 parent 6bffb78 commit 7e60545

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/inet/visualizer/base/MobilityVisualizerBase.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,12 @@ void MobilityVisualizerBase::receiveSignal(cComponent *source, simsignal_t signa
147147
else if (signal == PRE_MODEL_CHANGE) {
148148
if (dynamic_cast<cPreModuleDeleteNotification *>(object)) {
149149
if (auto mobility = dynamic_cast<IMobility *>(source)) {
150-
auto mobilityVisualization = getMobilityVisualization(mobility);
151-
removeMobilityVisualization(mobilityVisualization);
152-
delete mobilityVisualization;
150+
// a matching mobility may have no visualization yet (it never emitted a state-change
151+
// signal, or was filtered out), so guard against a null lookup before removing/deleting
152+
if (auto mobilityVisualization = getMobilityVisualization(mobility)) {
153+
removeMobilityVisualization(mobilityVisualization);
154+
delete mobilityVisualization;
155+
}
153156
}
154157
}
155158
}

0 commit comments

Comments
 (0)