currently each and every device specific instance and model structure
duplicates the memory layout of a struct GENmodel / GENinstance
further the first structure elements behind a GENinstance header
are reinterpreted as a sort of a generic "node" array.
This business is very error prone, and makes it difficult to
extend struct GENmodel / struct GENinstance.
This patch makes this business much more bearable.
loop over DEVmodDelete() and DEVdelete() in CKTdestroy()
instead of doing this business in the DEVdestroy() functions.
As a consequence, most DEVdestroy() functions
collapse completely.
This patch itself is not valid until all invokers of DEVdestroy()
(currently this is CKTdestroy() exclusively)
are rewritten to invoke DEVmodDelete() and DEVdelete()
Instead of searching and then deleting a given device-model,
just delete the given model.
The search shall be done somewhere else.
Don't free the model struct itself,
this shall be done by the invoker himself.
Don't free the device instrance list,
this shall be done by the invoker himself.
As a consequence, most DEVmodDelete() functions
collapse almost completely.
This change is of no consequence,
because DEVmodDelete() is currently nowhere used.
Instead of searching and then deleting a given device-instance,
just delete the given instance.
The search shall be done somewhere else.
Don't free the instance struct itself,
this shall be done by the invoker.
As a consequence most DEVdelete() functions
collapse almost completely.
This change is of no consequence,
because DEVdelete() is currently nowhere used.
A missing update of "prev" would cause endless looping
when searching for a device instance.
introduced in commit:
> commit 38e68869a2
> Date: Wed Mar 1 14:30:24 2006 +0000
>
> Added mdel, del and dest functions to interface.