mirror of https://github.com/KLayout/klayout.git
Bugfix: removing a pin from a Circuit does not crash if the pin was not disconnected before. Now it's disconnected automatically.
This commit is contained in:
parent
8eaf5638f8
commit
abe9479ced
|
|
@ -353,6 +353,7 @@ Pin &Circuit::add_pin (const std::string &name)
|
|||
void Circuit::remove_pin (size_t id)
|
||||
{
|
||||
if (id < m_pin_by_id.size () && ! tl::is_null_iterator (m_pin_by_id [id])) {
|
||||
connect_pin (id, 0);
|
||||
m_pins.erase (m_pin_by_id [id]);
|
||||
m_pin_by_id [id] = pin_list::iterator ();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -213,6 +213,15 @@ class DBNetlist_TestClass < TestBase
|
|||
assert_equal(p1.name, "X")
|
||||
assert_equal(p2.name, "B")
|
||||
|
||||
n1 = c.create_net("NET1")
|
||||
n2 = c.create_net("NET2")
|
||||
|
||||
c.connect_pin(p1.id, n1)
|
||||
assert_equal(n1.pin_count, 1)
|
||||
|
||||
c.connect_pin(p2.id, n2)
|
||||
assert_equal(n2.pin_count, 1)
|
||||
|
||||
assert_equal(p1.property(17), nil)
|
||||
p1.set_property(17, 42)
|
||||
assert_equal(p1.property(17), 42)
|
||||
|
|
@ -245,6 +254,9 @@ class DBNetlist_TestClass < TestBase
|
|||
|
||||
c.remove_pin(0)
|
||||
|
||||
assert_equal(n1.pin_count, 0)
|
||||
assert_equal(n2.pin_count, 1)
|
||||
|
||||
names = []
|
||||
c.each_pin { |p| names << p.name }
|
||||
assert_equal(names, [ "B" ])
|
||||
|
|
@ -253,6 +265,13 @@ class DBNetlist_TestClass < TestBase
|
|||
assert_equal(c.pin_by_id(1) == nil, false)
|
||||
assert_equal(c.pin_by_id(1).name, "B")
|
||||
|
||||
c.remove_pin(1)
|
||||
|
||||
assert_equal(n1.pin_count, 0)
|
||||
assert_equal(n2.pin_count, 0)
|
||||
|
||||
assert_equal(c.pin_by_id(1) == nil, true)
|
||||
|
||||
end
|
||||
|
||||
def test_4_Device
|
||||
|
|
|
|||
Loading…
Reference in New Issue