From 70ab672c5c376fc2e43362bdc7b398ffac4d14cc Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Tue, 14 Nov 2017 14:30:00 -0800 Subject: [PATCH] Pad strings in GDS to even number of bytes per bug report. --- compiler/gdsMill/gdsMill/gds2writer.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/compiler/gdsMill/gdsMill/gds2writer.py b/compiler/gdsMill/gdsMill/gds2writer.py index d2b98f99..5e761960 100644 --- a/compiler/gdsMill/gdsMill/gds2writer.py +++ b/compiler/gdsMill/gdsMill/gds2writer.py @@ -123,7 +123,10 @@ class Gds2writer: ## LibraryName if("libraryName" in self.layoutObject.info): idBits='\x02\x06' - libraryName = self.layoutObject.info["libraryName"] + if (len(self.layoutObject.info["libraryName"]) % 2 != 0): + libraryName = self.layoutObject.info["libraryName"] + "\0" + else: + libraryName = self.layoutObject.info["libraryName"] + "\0" self.writeRecord(idBits+libraryName) ## reference libraries if("referenceLibraries" in self.layoutObject.info): @@ -269,7 +272,10 @@ class Gds2writer: self.writeRecord(idBits+plex) if(thisSref.sName!=""): idBits='\x12\x06' - sName = thisSref.sName + if (len(thisSref.sName) % 2 != 0): + sName = thisSref.sName+"\0" + else: + sName = thisSref.sName self.writeRecord(idBits+sName) if(thisSref.transFlags!=""): idBits='\x1A\x01' @@ -313,7 +319,10 @@ class Gds2writer: self.writeRecord(idBits+plex) if(thisAref.aName): idBits='\x12\x06' - aName = thisAref.aName + if (len(thisAref.aName) % 2 != 0): + aName = thisAref.aName+"\0" + else: + aName = thisAref.aName self.writeRecord(idBits+aName) if(thisAref.transFlags): idBits='\x1A\x01'