I sense a problem with all these SigC::Object-derived
things that are created and passed through manage(),
but there are no signs of reference/dereference
operations which would properly destroy the objects.
The observations seem to confirm my suspicions.
Below are memory stats (ps v -C gabber) taken at
various points from a debug version of gabber.
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM
COMMAND
gabber window after initialization:
12887 pts/0 S 0:00 2293 1772 18919 9396 3.6
gabber
Browse Agents window opened:
12887 pts/0 S 0:00 2307 1772 18979 9480 3.6
gabber
Add Contact druid activated with a search button:
12887 pts/0 S 0:00 2428 1772 19379 10160
3.9 gabber
A search is committed, but the contact is not added,
the Add Contact and Browse Agents windows are closed:
12887 pts/0 S 0:00 2457 1772 19391 10192
3.9 gabber
Browse Agents and AddContact windows are opened again:
12887 pts/0 S 0:00 2518 1772 19427 10228
3.9 gabber
Logged In: YES
user_id=9539
Yes, there probably are memory leaks throughout some of that
stuff. I (and others) overestimated the power of manage()
when that code was written.