membranes: remove broken assertion
Membranes are not ref objects making a copy of one and then checking it for equality against the original won't work.
This commit is contained in:
parent
7f0277fe85
commit
6281f5467f
|
@ -18,24 +18,20 @@ type
|
||||||
oid: Oid
|
oid: Oid
|
||||||
`ref`: Ref
|
`ref`: Ref
|
||||||
count: int
|
count: int
|
||||||
when not defined(release):
|
|
||||||
mem: Membrane
|
|
||||||
|
|
||||||
proc oid*(sym: WireSymbol): Oid = sym.oid
|
proc oid*(sym: WireSymbol): Oid = sym.oid
|
||||||
proc `ref`*(sym: WireSymbol): Ref = sym.ref
|
proc `ref`*(sym: WireSymbol): Ref = sym.ref
|
||||||
|
|
||||||
proc grab*(mem: Membrane; key: Oid|Ref): WireSymbol =
|
proc grab*(mem: Membrane; key: Oid): WireSymbol =
|
||||||
## Grab a `WireSymbol` from a `Membrane`.
|
## Grab a `WireSymbol` from a `Membrane`.
|
||||||
result =
|
mem.byOid.getOrDefault(key)
|
||||||
when key is Oid: mem.byOid.getOrDefault(key)
|
|
||||||
elif key is Ref: mem.byRef.getOrDefault(key)
|
proc grab*(mem: Membrane; key: Ref): WireSymbol =
|
||||||
else: {.error.}
|
## Grab a `WireSymbol` from a `Membrane`.
|
||||||
if not result.isNil: inc result.count
|
mem.byRef.getOrDefault(key)
|
||||||
|
|
||||||
proc drop*(mem: var Membrane; sym: WireSymbol) =
|
proc drop*(mem: var Membrane; sym: WireSymbol) =
|
||||||
## Drop a `WireSymbol` from a `Membrane`.
|
## Drop a `WireSymbol` from a `Membrane`.
|
||||||
assert sym.mem == mem, "cannot drop WireSymbol at the wrong Membrane"
|
|
||||||
assert sym.count > 0
|
|
||||||
dec sym.count
|
dec sym.count
|
||||||
if sym.count < 1:
|
if sym.count < 1:
|
||||||
mem.byOid.del sym.oid
|
mem.byOid.del sym.oid
|
||||||
|
@ -46,4 +42,3 @@ proc newWireSymbol*(mem: var Membrane; o: Oid; r: Ref): WireSymbol =
|
||||||
result = WireSymbol(oid: o, `ref`: r, count: 1)
|
result = WireSymbol(oid: o, `ref`: r, count: 1)
|
||||||
mem.byOid[result.oid] = result
|
mem.byOid[result.oid] = result
|
||||||
mem.byRef[result.`ref`] = result
|
mem.byRef[result.`ref`] = result
|
||||||
when not defined(release): result.mem = mem
|
|
||||||
|
|
Loading…
Reference in New Issue