Bug in Cell::_preDestroy().
* Bug: In Hurricane, in Cell::_preDestroy(), the classic mistake again: do not iterate over a collection while deleting it's elements. Now should be safe. * Change: In CRL Core, set the default display style to "Alliance.Classic [black]" (my favorite).
This commit is contained in:
parent
f28daec401
commit
b57c81dda8
|
@ -8,7 +8,7 @@ else:
|
|||
poly2Color = 'Orange'
|
||||
|
||||
|
||||
defaultStyle = 'Printer.Coriolis'
|
||||
defaultStyle = 'Alliance.Classic [black]'
|
||||
|
||||
stylesTable = \
|
||||
( ( (Style , 'Alliance.Coriolis [black]', 'Alliance Coriolis Look - black background')
|
||||
|
|
|
@ -936,15 +936,18 @@ void Cell::_preDestroy()
|
|||
_slaveEntityMap.begin()->second->destroy();
|
||||
}
|
||||
|
||||
//for ( View* view : getViews() ) view->setCell( NULL );
|
||||
for ( Marker* marker : getMarkers() ) marker->destroy();
|
||||
for ( Instance* slaveInstance : getSlaveInstances() ) slaveInstance->destroy();
|
||||
for ( Instance* instance : getInstances() ) instance->destroy();
|
||||
for ( Net* net : getNets() ) {
|
||||
Markers markers = getMarkers (); while ( markers .getFirst() ) markers .getFirst()->destroy();
|
||||
Instances instances = getSlaveInstances(); while ( instances.getFirst() ) instances.getFirst()->destroy();
|
||||
instances = getInstances (); while ( instances.getFirst() ) instances.getFirst()->destroy();
|
||||
|
||||
Nets nets = getNets();
|
||||
while ( nets.getFirst() ) {
|
||||
Net* net = nets.getFirst();
|
||||
net->_getMainName().detachAll();
|
||||
net->destroy();
|
||||
}
|
||||
for ( auto islave : _netAliasSet ) delete islave;
|
||||
for ( auto islave : _netAliasSet ) delete islave;
|
||||
|
||||
for ( Slice* slice : getSlices() ) slice->_destroy();
|
||||
while ( not _extensionSlices.empty() ) _removeSlice( _extensionSlices.begin()->second );
|
||||
|
||||
|
|
|
@ -1399,16 +1399,16 @@ extern "C" {
|
|||
|
||||
# define HCATCH \
|
||||
} \
|
||||
catch ( Warning& w ) { \
|
||||
catch ( const Warning& w ) { \
|
||||
std::string message = "\n" + getString(w); \
|
||||
PyErr_Warn ( HurricaneWarning, const_cast<char*>(message.c_str()) ); \
|
||||
} \
|
||||
catch ( Error& e ) { \
|
||||
catch ( const Error& e ) { \
|
||||
std::string message = "\n" + getString(e); \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
} \
|
||||
catch ( std::exception& e ) { \
|
||||
catch ( const std::exception& e ) { \
|
||||
std::string message = "\n" + std::string(e.what()); \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
|
|
Loading…
Reference in New Issue