Ticket #526 (closed defect: invalid)
Weird slot-value corruption (64-bit only)
| Reported by: | rongarret | Owned by: | rme |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | IDE | Version: | 1.3 |
| Keywords: | Cc: |
Description
I do this:
(defclass scribble-view (ns:ns-view)
((path :initform (#/bezierPath ns:ns-bezier-path)))
(:metaclass ns:+ns-object))
(defun make-scribble-window ()
(ccl::with-autorelease-pool
(let* ((rect (ns:make-ns-rect 0 0 300 300))
(w (make-instance 'ns:ns-window
:with-content-rect rect
:style-mask (logior #$NSTitledWindowMask
#$NSClosableWindowMask
#$NSMiniaturizableWindowMask
#$NSResizableWindowMask)
:backing #$NSBackingStoreBuffered
:defer t))
(v (make-instance 'scribble-view)))
(#/setTitle: w #@"Scribble")
(#/setContentView: w v)
(#/center w)
(#/orderFront: w nil)
(print (slot-value v 'path))
v)))
(slot-value (make-scribble-window) 'path)
In 32-bit CCL this does what I would expect, namely, return an NS-BEZIER-PATH object. In 64-bit CCL it returns a bogus ObjC object. But the PRINTed value of (slot-value v 'path) is an NS-BEZIER-PATH object, so somehow the PATH slot is being corrupted between the PRINT and returning V from MAKE-SCRIBBLE-WINDOW.
Change History
Note: See
TracTickets for help on using
tickets.
