argument as a pointer but also set the same variable to the
return value. This is ambiguous, because the behavior depends on
whether the value being set upon return is the original value or
the reallocated value. The result is system-dependent behavior.
SPICE subcircuit definitions from a netlist file and apply the port
order in the netlist to the port labels in the corresponding cell
or cells in the magic database. Also: Corrected an error in the
bloat-all code introduced in a recent commit that can cause a
segfault.
templayers. This permits some useful interactions like growing to
the size of a bounding box, or abutment box, as well as many other
possibilities. Also: Corrected the use of "cif see" for the boundary
(abutment box) layer, which was not working because the "cif see"
command uses a flattened CellDef that does not have the boundary
property of the cell it was flattened from.
layers (apart from the fact that contacts are output as magic's
contact layer representation, and not as cuts; this still needs to
be handled properly).
or more repeated "equiv" lines in a .ext file. This implies two
ports with different names are connected, indicating probably a bad
layout, but that's not a reason to have magic crash.
I missed the LAYER value and the geometry was one level to high.
Previous;
```
PORT
LAYER li1 ;
RECT 1.145000 1.075000 1.690000 1.275000 ;
RECT 3.720000 1.075000 4.490000 1.275000 ;
LAYER met1 ;
RECT 1.105000 1.260000 1.395000 1.305000 ;
RECT 3.765000 1.260000 4.055000 1.305000 ;
```
After;
```
PORT
LAYER li1 ;
RECT 1.145000 1.075000 1.690000 1.275000 ;
RECT 3.720000 1.075000 4.490000 1.275000 ;
LAYER met1 ;
RECT 1.105000 1.260000 1.395000 1.305000 ;
RECT 3.765000 1.260000 4.055000 1.305000 ;
```
areas and writes ANTENNAGATEAREA and ANTENNADIFFAREA values.
(2) Determines "USE POWER" or "USE GROUND" from label names
matching Tcl variables $VDD and $GND, if the USE has not been
registered as a cell property (knowning the use allows magic
to avoid writing an ANTENNADIFFAREA for power rails, although
doing so should not be an issue).
of cell name dereferencing on file loads, where the cell load
subroutine call ended up with the wrong number of arguments,
resulting in an invalid pointer and a crash condition.
related to that cell (since elements are usually temporary and so
kept in a separate list, not in the cell). Corrected a major error
in the bplane implementation that failed to remove a cell use from
the child def's parent list when deleting the use. Can cause magic
to go into an infinite loop, especially after selecting and unselecting
cells.
"ignore-unknown-layer-labels" is set, then error messages will not
be displayed when labels in the GDS input are on unknown layers
(this option is and has been otherwise handled correctly; the only
issue is the generation of an error message on the output).
unrecognized layers when the "readonly" read option is set.
Added support to scale elements (from the "element" command,
such as the measurement text and arrows) when the grid scales,
which was missing. Corrected the output of persistent elements
in a .mag file so that they are correctly scaled by the scale
reducer.
a LEF macro that has parentheses around the coordinates. Weirdly,
this is requires by the LEF/DEF spec, but is rarely if ever seen
in actual LEF files. Go figure.
not known, though, why the flag is set indicating valid planes
in the clientdata record when there in fact is none. That seems
to be the underlying bug.
GDS of abstract views, such that if the cellname being dumped is the
same as the library name, then no prefix is added to subcells. This
behavior may be changed in the future.