[Openmcl-devel] ns:ns-tracking-area not present in 32bit CCL

Rainer Joswig joswig at lisp.de
Mon Jun 8 21:35:13 PDT 2009


using Clozure Common Lisp Version 1.3-r12088M  (DarwinX8664)


On executing the add-subview example form in draggable.lisp

I get:

*** Error in event process: unknown arg spec :REGISTERS

  (442BE8) : 0 (FUNCALL #'#<(:INTERNAL |-[StandardView drawRect:]|)>  
#<SIMPLE-ERROR #x3000420F8DBD>) 85
   (#:G5085)
    #:G5085: #<SIMPLE-ERROR #x3000420F8DBD>

   #:COMPILER-VAR: (NIL)
   #:G5082: #<A Foreign Pointer #x7FFF5FBFD360>

  (442C10) : 1 (SIGNAL #<SIMPLE-ERROR #x3000420F8DBD>) 981
   (CONDITION &REST CCL::ARGS)
    CONDITION: #<SIMPLE-ERROR #x3000420F8DBD>
    CCL::ARGS: NIL

   CCL::%HANDLERS%: ((ERROR) (ERROR))
   CCL::TAG: #<SIMPLE-ERROR #x3000420F8DBD>
   CCL::HANDLERS: CCL::*BACKTRACE-CONTEXTS*
   CCL::FN: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL |-[StandardView  
drawRect:]|) #x493DBF>

  (442C68) : 2 (%ERROR #<SIMPLE-ERROR #x3000420F8DBD> (:REGISTERS)  
558482) 117
   (CONDITION CCL::ARGS CCL::ERROR-POINTER)
    CONDITION: #<SIMPLE-ERROR #x3000420F8DBD>
    CCL::ARGS: (:REGISTERS)
    CCL::ERROR-POINTER: 558482



  (442C90) : 3 (%FF-CALL 140735390423728 :REGISTERS #<NS-OBJECT  
<NSCFType: 0x170192c0> (#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING  
"Lisp Rules!" (#x137CD2F0)> :ADDRESS #<A Foreign Pointer  
#x7FFF82F59600> :ADDRESS #<NS-MUTABLE-DICTIONARY {
     NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)  
fobj=0x170178c0, spc=12.00";
} (#x17019E50)> :VOID) 701
   (CCL::ENTRY &REST CCL::SPECS-AND-VALS)
    CCL::ENTRY: 140735390423728
    CCL::SPECS-AND-VALS: (:REGISTERS #<NS-OBJECT <NSCFType:  
0x170192c0> (#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING "Lisp  
Rules!" (#x137CD2F0)> :ADDRESS ...)

   CCL::LEN: 9
   CCL::TOTAL-WORDS: 0
   CCL::RESULT-SPEC: :VOID
   CCL::NARGS: 4
   CCL::N-FP-ARGS: 0
   CCL::I: 0
   CCL::SPECS: (:REGISTERS #<NS-OBJECT <NSCFType: 0x170192c0>  
(#x170192C0)> :ADDRESS #<NS-CONSTANT-STRING "Lisp  
Rules!" (#x137CD2F0)> :ADDRESS ...)
   CCL::SPEC: :REGISTERS

  (442CF8) : 4 (FUNCALL #'#<Anonymous Function #x300041D9AB4F> #<NS- 
CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)> #S(CCL::OBJC- 
SELECTOR :NAME "sizeWithAttributes:" :%SEL #<A Foreign Pointer  
#x7FFF82F59600>) #<NS-MUTABLE-DICTIONARY {
     NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)  
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>) 805
   (#:G3751 #:G3752 CCL::ARG0)
    #:G3751: #<NS-CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)>
    #:G3752: #S(CCL::OBJC-SELECTOR :NAME "sizeWithAttributes:" :%SEL  
#<A Foreign Pointer #x7FFF82F59600>)
    CCL::ARG0: #<NS-MUTABLE-DICTIONARY {
     NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)  
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>

   #:G3753: #<NS-SIZE 0 X 0 #x3000420F8EDD> [gcable] (#x17029190)
   #:G3756: #<A Foreign Pointer #x17029190>
   #:G3755: #<NS-OBJECT <NSCFType: 0x170192c0> (#x170192C0)>

  (442D38) : 5 (FUNCALL #'#<(:INTERNAL CCL::SEND-UNAMBIGUOUS-MESSAGE  
(SHARED-INITIALIZE :AFTER (CCL::OBJC-DISPATCH-FUNCTION T)))> #<NS- 
CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)> #<NS-MUTABLE-DICTIONARY {
     NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)  
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>) 501
   (CCL::RECEIVER &REST CCL::ARGS)
    CCL::RECEIVER: #<NS-CONSTANT-STRING "Lisp Rules!" (#x137CD2F0)>
    CCL::ARGS: (#<NS-MUTABLE-DICTIONARY {
     NSFont = "TimesNewRomanPS-ItalicMT 48.00 pt. P [] (0x13799150)  
fobj=0x170178c0, spc=12.00";
} (#x17019E50)>)

   CCL::SELECTOR: #S(CCL::OBJC-SELECTOR :NAME "sizeWithAttributes:" : 
%SEL #<A Foreign Pointer #x7FFF82F59600>)
   FUNCTION: #<Anonymous Function #x300041D9AB4F>

  (442D78) : 6 (FUNCALL #'#<#<STANDARD-METHOD VIEW-DRAW-CONTENTS (TEXT- 
VIEW)>> #<TESTVIEW #x30004201D12D> #<NS-RECT 100 X 100 @ 0,0  
(#x7FFF5FBFD370) #x3000420F928D>) 229
   (V &OPTIONAL RECT)
    V: #<TESTVIEW #x30004201D12D>
    RECT: #<NS-RECT 100 X 100 @ 0,0 (#x7FFF5FBFD370) #x3000420F928D>



  (442DA0) : 7 (FUNCALL #'#<|-[StandardView drawRect:]|>  
17591849974380) 981
   (#:G5081)
    #:G5081: 17591849974380

   #:G5088: #<A Foreign Pointer #x7FFF5FBFD360>
   #:G5082: #<A Foreign Pointer #x7FFF5FBFD360>
   #:COMPILER-VAR: (NIL)
   #:G5087: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL |-[StandardView  
drawRect:]|) #x493DBF>
   #:G5089: (CONDITION #<COMPILED-LEXICAL-CLOSURE # #x493DBF>)
   CCL::%HANDLERS%: ((CONDITION #) (ERROR))
   SELF: #<STANDARD-VIEW <StandardView: 0x170221c0> (#x170221C0)>
   _CMD: #<A Foreign Pointer #x7FFF83013F38>
   RECT: #<NS-RECT 100 X 100 @ 0,0 (#x7FFF5FBFD370) #x3000420F928D>

  (442E48) : 8 (%PASCAL-FUNCTIONS% 277 17591849974380) 397
   (CCL::INDEX CCL::ARGS-PTR-FIXNUM)
    CCL::INDEX: 277
    CCL::ARGS-PTR-FIXNUM: 17591849974380

   CCL::LISP-FUNCTION: #<Compiled-function |-[StandardView drawRect:]|  
(Non-Global)  #x300041F007BF>
   WITHOUT-INTERRUPTS: NIL
   CCL::*CALLBACK-TRACE-P*: NIL

  (442F08) : 10 (FUNCALL #'#<Anonymous Function #x30004122027F> #<LISP- 
APPLICATION <LispApplication: 0x1c3580> (#x1C3580)> #S(CCL::OBJC- 
SELECTOR :NAME "run" :%SEL #<A Foreign Pointer #x7FFF82FFFD68>)) 205
   (#:G3072 #:G3073)
    #:G3072: #<LISP-APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>
    #:G3073: #S(CCL::OBJC-SELECTOR :NAME "run" :%SEL #<A Foreign  
Pointer #x7FFF82FFFD68>)



  (442F28) : 11 (FUNCALL #'#<(:INTERNAL CCL::SEND-UNAMBIGUOUS-MESSAGE  
(SHARED-INITIALIZE :AFTER (CCL::OBJC-DISPATCH-FUNCTION T)))> #<LISP- 
APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>) 501
   (CCL::RECEIVER &REST CCL::ARGS)
    CCL::RECEIVER: #<LISP-APPLICATION <LispApplication: 0x1c3580>  
(#x1C3580)>
    CCL::ARGS: NIL

   CCL::SELECTOR: #S(CCL::OBJC-SELECTOR :NAME "run" :%SEL #<A Foreign  
Pointer #x7FFF82FFFD68>)
   FUNCTION: #<Anonymous Function #x30004122027F>

  (442F68) : 12 (EVENT-LOOP NIL) 413
   (&OPTIONAL GUI::END-TEST)
    GUI::END-TEST: NIL

   GUI::APP: #<LISP-APPLICATION <LispApplication: 0x1c3580> (#x1C3580)>
   *BREAK-ON-ERRORS*: NIL
   #:G163537: (ERROR)
   CCL::%HANDLERS%: ((ERROR))
   GUI::*EVENT-PROCESS-REPORTED-CONDITIONS*: (#<SIMPLE-ERROR  
#x3000420F8DBD>)







Am 09.06.2009 um 02:44 schrieb Ron Garret:

> [This may be a repeat, but the original never showed up in my  
> inbox.  Also, there's an update at the end.]
>
> On Jun 8, 2009, at 11:32 AM, Arthur W Cater wrote:
>
>> Use #/addTrackingRect:owner:userData:assumeInside: with
>> - the view
>> - its #/bounds
>> - a ns-object as target
>> - ccl::+null-ptr+
>> - #$NO
>>
>> Then
>> (objc:define-objc-method ((:void :mouse-entered (:id event))  
>> <theTargetClassYouUsed>) ...)
>>
>> likewise :mouse-exited and :mouse-move
>
> Thanks!  Updated version enclosed. This has been tested in 32-bit  
> CCL, and should now work on Tiger as well.
>
> This version also fixes a bug whereby testviews did not get properly  
> re-initialized to add a tracker when the class got redefined.  I was  
> using an initialize-instance :after method when I should have been  
> using shared initialize -- I think.  There is still a subtle bug  
> which I can't figure out.  When you add a highlighted mixin to an  
> existing testview instance, you have to click on it once before it  
> starts to highlight itself.  I have no idea why this is happening.   
> I may not be using shared-initialize properly.  Maybe a CLOS wizard  
> can help with some advice on the proper way to do this.
>
> UPDATE: it turns out that the reason for this is that calling shared- 
> initialize is done lazily.  So until there is an interaction with  
> the updated object it doesn't get re-initialized, so add-tracker  
> doesn't get called, so the event that would normally cause the  
> interaction never gets received.  Makes an interesting little puzzle.
>
> rg
>
> <draggable.lisp>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

Rainer Joswig, Hamburg, Germany
http://lispm.dyndns.org/
mailto:joswig at lisp.de






More information about the Openmcl-devel mailing list