Hello everybody,
there has been only a little activity on the mailing list, but this
doesn't mean that development stopped. Currently I'm working on the
minimal simulator codebase, which consists only of classes directly
related to simulation, and not user interface.
In the current status, the general structure is mostly done. A few
components are implemented, the rest will be done when the supporting
infrastructure can be considered final. Test cases using the implemented
components are working, and during last weeks I managed to do proper
cleanup of the allocated memory. Running the test-cases under valgrind now
gives 0 allocation errors, but it also detects some potential memory leaks
from the used libraries (qt, glib, gpsim). As there are no leaks in our
code, I'd say it's not a big problem.
The next thing to do on my side is to improve the component destruction
mechanism, in the sense that now objects have to be deleted in the
following order:
1. connectors
2. components
3. circuit
This destruction order doesn't seem realistic for me, except that the
circuit should be really deleted last -- no component should exist outside
the circuit.
Maybe QPointer could be used to track when specific objects have been
deleted, and remove the references to them.
Another option would be to have bidirectional reference between circuit,
components, nodes and connectors, so when any of the objects gets deleted,
it notifies its "neighbors" to remove the references to it.
As usual, any comments and notes are welcome for discussion.
Regards,
Zoltan