[Openmcl-devel] Three questions
Kevin Reid
kpreid at mac.com
Sat Feb 9 05:02:25 PST 2008
On Feb 8, 2008, at 19:54, Ron Garret wrote:
> Yes, but windows are a notable exception because one often wishes to
> retain pointers to them (so you can draw in them for example) but they
> can (and in the normal course of events often do) become deallocated
> asynchronously as a result of a user's actions, to wit, clicking on
> the "close" button.
Perhaps I have my facts wrong, as I haven't done any Cocoa
programming in a long time (and have never used OpenMCL's bridge),
but as far as I know, NSWindow is not *that much* of an exception to
Cocoa reference counting rules.
That is, if you have a reference to the NSWindow, you should -retain
it, and it will then not ever be deallocated out from under you. (Of
course, you would then -release it in a finalizer on your Lisp
container.)
(Disregard the above if OpenMCL automatically retains/releases
foreign-pointers to ObjC objects.)
It sounds like setReleasedWhenClosed:YES might create an exception,
but in that case -- turn that option off! Or make sure you don't
"use" the first incrementing-of-reference-count that corresponds to -
alloc (that is, that unit is "owned" by the internal release-when-
closed mechanism), and retain it yourself separately.
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the Openmcl-devel
mailing list