From 3638d382d66dbcdada442889dbb884a171509da4 Mon Sep 17 00:00:00 2001 From: "Darryl L. Miles" Date: Tue, 4 Jun 2024 15:07:43 +0100 Subject: [PATCH] fix: lef write crash (when cells with labels in space pNum==-1) The issue here is can pNum==-1 which causes a crash. --- lef/lefWrite.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lef/lefWrite.c b/lef/lefWrite.c index 93657b18..b88385af 100644 --- a/lef/lefWrite.c +++ b/lef/lefWrite.c @@ -1591,8 +1591,10 @@ lefWriteMacro(def, f, scale, setback, pinonly, toplayer, domaster) /* disappear by being inside the setback area. */ pNum = DBPlane(lab->lab_type); - DBPaintPlane(SelectDef->cd_planes[pNum], &labr, - DBStdPaintTbl(lab->lab_type, pNum), (PaintUndoInfo *) NULL); + if (pNum >= 0) // ignore labels in space + DBPaintPlane(SelectDef->cd_planes[pNum], &labr, + DBStdPaintTbl(lab->lab_type, pNum), + (PaintUndoInfo *) NULL); } else { @@ -1607,8 +1609,10 @@ lefWriteMacro(def, f, scale, setback, pinonly, toplayer, domaster) /* disappear by being inside the setback area. */ pNum = DBPlane(lab->lab_type); - DBPaintPlane(SelectDef->cd_planes[pNum], &labr, - DBStdPaintTbl(lab->lab_type, pNum), (PaintUndoInfo *) NULL); + if (pNum >= 0) // ignore labels in space + DBPaintPlane(SelectDef->cd_planes[pNum], &labr, + DBStdPaintTbl(lab->lab_type, pNum), + (PaintUndoInfo *) NULL); } }