From 0d473e18c011e3e217846738f1ab987b1277cdd8 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Thu, 30 Sep 2021 19:59:28 +0200 Subject: [PATCH] Fix crash in Anabatic::AntennaProtect. * Bug: In Anabatic::AntennaProtect, if the diode cell exists *but* the maximum wire length for a diode is *not* defined (so zero) cancel the diode protection instead of making a divide by zero. --- anabatic/src/AntennaProtect.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/anabatic/src/AntennaProtect.cpp b/anabatic/src/AntennaProtect.cpp index 7f08ef9b..9e16089c 100644 --- a/anabatic/src/AntennaProtect.cpp +++ b/anabatic/src/AntennaProtect.cpp @@ -1109,12 +1109,17 @@ namespace Anabatic { } EtesianEngine* etesian = static_cast ( ToolEngine::get( getCell(), EtesianEngine::staticGetName() )); - DbU::Unit segmentMaxWL = etesian->getAntennaDiodeMaxWL() / 2; if (not etesian->getDiodeCell()) { cerr << Warning( "AnabaticEngine::antennaProtect(): No diode cell found, skipped." ) << endl; return; } + if (etesian->getAntennaDiodeMaxWL() <= 0) { + cerr << Warning( "AnabaticEngine::antennaProtect(): Maximum antenna diode WL not set, skipped." ) << endl; + return; + } + + DbU::Unit segmentMaxWL = etesian->getAntennaDiodeMaxWL() / 2; cmess1 << " o Antenna effect protection." << endl; startMeasures();