John,
I guess I wouldn't survive shooting you for very long, even if I wanted to (which I don't for several reasons) ;-)
Thanks for your insightful answer. I was somehow expecting an answer like: "you forgot to release GDI handles by sending xxx to your GO's, stupid!" - I know you wouldn't use that last word, but I often get to hear it ;-)
I'd like to understand your answer a bit better: If our problem is a finalization problem, shouldn't invoking the GC with System globalGarbageCollect solve the problem? I mean, GC does lead to finalization before objects get finally trashed, no?
I may be wrong, but if the above is true, we're probably only lucky to run into GDI problems before we run out of memory because the GO's won't go away, but are small enough to fit into our memory bounds....
BTW: There is something strange in the GF ST documentation in the chapter about releasing GO's:
VA Smaltalk
We can therefore be sure that every nodeGO will receive the message
finalize, resulting in the release of host window system resources, when it is no longer held onto by anybody.
The whole section bares a headline of "VA Smalltalk" but seems to cover VisualSmalltalk. (The error was not introduced by Instantiations but has been in the original document already).
It also seems to be incorrect, because we tried putting breakpoints and halts into GOs finalize method and never got a Debugger, which either means VAST catches and swallows the respective exceptions in the finalize cycle or our GO's never get finalized...
So you see me puzzled ;-)
Joachim