[Openmcl-devel] Hemlock and its documents and windows

Arthur Cater arthur.cater at ucd.ie
Wed Oct 12 14:43:17 UTC 2016


Hi everybody,

On my mid-2015 Macbook Pro with OS X.11.5 I have been trying to move my code
from DarwinX8664 ccl 1.10 r16196 to ccl 1.11 r16635.

I have a problem with some code I contributed a few years back, clickable.lisp.
Specifically it uses gui::find-or-make-hemlock-view and then  (hold your noses here)
changes the ns:isa slot of the window to a subclass of gui::hemlock-frame and
changes the ns:isa slot of the document to a subclass of guy::hemlock-editor-document.
While the first seems to succeed, the second seems to cause a crash in ccl 1.11.

I notice that the original contents of these ns:isa slots are now foreign pointers, whereas previously in ccl 1.10 they were ns class objects. I also notice that sometime between
my developing that code and ccl 1.10 coming along, a change was made to the
hemlock-frame’s ns:isa to be a #<NS-OBJECT NSKVONotifying_HemlockFrame …>.

So I have a few questions, I’d love to hear your helpful answers!

Is there a better way to get the effect of change-class on a NS object than to change its NS:ISA slot?

If I am to change the slot, what sort of value should be used? If a foreign pointer, then
how do I make an appropriate one (I only know of ccl::%int-to-ptr but that probably isn’t
appropriate and if it is then I don’t know how to get the appropriate int)

Where is that NSKVONotifying_HemlockFrame defined? Where is it used? Searches of the ccl files don’t show me anything relevant.

Arthur



More information about the Openmcl-devel mailing list