If above doesn't help, what version of 1.8 were you using
previously? If < 1.8.7 then you might see if the bug is "object
allocation during garbage collection". The size of pointers on Mac
OS X mean that when they are converted to ruby Numerics, they may be
BigNums. These are not immediate objects and involve allocation; if
you happen to do this during GC it's a mistake. Ruby 1.8.6 and
earlier were indulgent to this failing, but 1.8.7 and 1.9.1 are not.
You could test this by placing GC.disable at the very start of your
script and seeing if the crash still happens.
disabling the GC, lend me to rb_bug:
:2: [BUG] Segmentation fault
ruby 1.9.1p0 (2009-05-04 revision 23343) [i386-darwin9.6.0]
#0 0x0010dc54 in control_frame_dump (th=0x10248e0, cfp=0xfaefd0) at /
Users/rolando/Documents/GFF/ShinyCocos/ruby/vm_dump.c:108
#1 0x0010e016 in rb_vmdebug_stack_dump_raw (th=0x10248e0,
cfp=0xfaefd0) at /Users/rolando/Documents/GFF/ShinyCocos/ruby/
vm_dump.c:176
#2 0x0010ea2e in rb_vm_bugreport () at /Users/rolando/Documents/GFF/
ShinyCocos/ruby/vm_dump.c:575
#3 0x00024d05 in report_bug (file=0x640014 "\034\001", line=2,
fmt=0x19b143 "Segmentation fault", args=0x7e8cd4 "\213E\b\211") at /
Users/rolando/Documents/GFF/ShinyCocos/ruby/error.c:215
#4 0x00024d6f in rb_bug (fmt=0x19b143 "Segmentation fault") at /Users/
rolando/Documents/GFF/ShinyCocos/ruby/error.c:230
#5 0x0009d7bc in sigsegv (sig=11, info=0x7e8fa0, ctx=0x7e8fe0) at /
Users/rolando/Documents/GFF/ShinyCocos/ruby/signal.c:605
#6 <signal handler called>
#7 0x000a546c in st_lookup (table=0xdaa29, key=9864,
value=0xbfffe28c) at /Users/rolando/Documents/GFF/ShinyCocos/ruby/st.c:
289
#8 0x0010475e in search_method (klass=92302780, id=9864, klassp=0x0)
at vm_method.c:229
#9 0x001047a8 in rb_get_method_body (klass=92302780, id=9864,
idp=0xbfffe334) at vm_method.c:256
#10 0x00106ff9 in rb_call0 (klass=92302780, recv=92302620, mid=9864,
argc=0, argv=0x0, scope=1, self=6) at vm_eval.c:205
#11 0x00106ea7 in rb_call (klass=92302780, recv=92302620, mid=9864,
argc=0, argv=0x0, scope=1) at vm_eval.c:255
#12 0x001072cf in rb_funcall (recv=92302620, mid=9864, n=0) at
vm_eval.c:427
#13 0x000d10e2 in -[CocosNode(SC_Extension) rb_on_enter]
(self=0x5778580, _cmd=0x1a75dc) at /Users/rolando/Documents/GFF/
ShinyCocos/Integration/SC_CocosNode.m:72
#14 0x00174a11 in -[CocosNode onEnter] (self=0x5778370, _cmd=0x19ca9f)
at /Users/rolando/Documents/GFF/ShinyCocos/cocos2d-iphone/cocos2d/
CocosNode.m:529
#15 0x000d10ac in -[CocosNode(SC_Extension) rb_on_enter]
(self=0x5778370, _cmd=0x1a75dc) at /Users/rolando/Documents/GFF/
ShinyCocos/Integration/SC_CocosNode.m:69
#16 0x00174a11 in -[CocosNode onEnter] (self=0x5775ed0, _cmd=0x19ca9f)
at /Users/rolando/Documents/GFF/ShinyCocos/cocos2d-iphone/cocos2d/
CocosNode.m:529
#17 0x000d10ac in -[CocosNode(SC_Extension) rb_on_enter]
(self=0x5775ed0, _cmd=0x1a75dc) at /Users/rolando/Documents/GFF/
ShinyCocos/Integration/SC_CocosNode.m:69
#18 0x00174a11 in -[CocosNode onEnter] (self=0x5775e70, _cmd=0x19ca9f)
at /Users/rolando/Documents/GFF/ShinyCocos/cocos2d-iphone/cocos2d/
CocosNode.m:529
#19 0x000d10ac in -[CocosNode(SC_Extension) rb_on_enter]
(self=0x5775e70, _cmd=0x1a75dc) at /Users/rolando/Documents/GFF/
ShinyCocos/Integration/SC_CocosNode.m:69
#20 0x00179386 in -[Director setNextScene] (self=0x1070fd0,
_cmd=0x1a7882) at /Users/rolando/Documents/GFF/ShinyCocos/cocos2d-
iphone/cocos2d/Director.m:649
#21 0x00177a13 in -[Director mainLoop] (self=0x1070fd0, _cmd=0x1a76ff)
at /Users/rolando/Documents/GFF/ShinyCocos/cocos2d-iphone/cocos2d/
Director.m:185
#22 0x94505e23 in __NSFireTimer ()
#23 0x9213cb25 in CFRunLoopRunSpecific ()
#24 0x9213ccd8 in CFRunLoopRunInMode ()
#25 0x31566600 in GSEventRunModal ()
#26 0x315666c5 in GSEventRun ()
#27 0x30a4eca0 in -[UIApplication _run] ()
#28 0x30a5a09c in UIApplicationMain ()
#29 0x0000200a in main (argc=1, argv=0xbfffeee4) at /Users/rolando/
Documents/GFF/ShinyCocos/_DC/main.m:14
Will check a few things and try again.
Btw, you were totally right, the way swig tracks objects is almost the
same thing I'm trying to do. I'll take a closer look to the code.
cheers,