NetworkReader::deleteLibrary

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2021-08-13 08:37:42 -07:00
parent 723fb68e38
commit 21ec025dab
3 changed files with 7 additions and 5 deletions

View File

@ -163,6 +163,7 @@ public:
const char *filename); const char *filename);
virtual LibertyLibrary *makeLibertyLibrary(const char *name, virtual LibertyLibrary *makeLibertyLibrary(const char *name,
const char *filename); const char *filename);
virtual void deleteLibrary(Library *library);
virtual Cell *makeCell(Library *library, virtual Cell *makeCell(Library *library,
const char *name, const char *name,
bool is_leaf, bool is_leaf,
@ -238,7 +239,6 @@ public:
protected: protected:
void addLibrary(ConcreteLibrary *library); void addLibrary(ConcreteLibrary *library);
void deleteLibrary(ConcreteLibrary *library);
void setName(const char *name); void setName(const char *name);
void clearConstantNets(); void clearConstantNets();
virtual void visitConnectedPins(const Net *net, virtual void visitConnectedPins(const Net *net,

View File

@ -533,6 +533,7 @@ public:
virtual void setLinkFunc(LinkNetworkFunc *link) = 0; virtual void setLinkFunc(LinkNetworkFunc *link) = 0;
virtual Library *makeLibrary(const char *name, virtual Library *makeLibrary(const char *name,
const char *filename) = 0; const char *filename) = 0;
virtual void deleteLibrary(Library *library) = 0;
// Search the libraries in read order for a cell by name. // Search the libraries in read order for a cell by name.
virtual Cell *findAnyCell(const char *name) = 0; virtual Cell *findAnyCell(const char *name) = 0;
virtual Cell *makeCell(Library *library, virtual Cell *makeCell(Library *library,

View File

@ -437,11 +437,12 @@ ConcreteNetwork::findLibrary(const char *name)
} }
void void
ConcreteNetwork::deleteLibrary(ConcreteLibrary *library) ConcreteNetwork::deleteLibrary(Library *library)
{ {
library_map_.erase(library->name()); ConcreteLibrary *clib = reinterpret_cast<ConcreteLibrary*>(library);
library_seq_.eraseObject(library); library_map_.erase(clib->name());
delete library; library_seq_.eraseObject(clib);
delete clib;
} }
const char * const char *