Re: Freeing a list bound to a hash will cause a crash
jon klein <[email protected]>
| Newsgroups | gmane.comp.breve |
|---|---|
| Message-ID | <[email protected]> |
On Mar 7, 2004, at 6:37 PM, Eric DeWitt wrote:
> Code that causes the crash is listed below. All crashed threads are
> at (repeats every time) is 'stEvalFree'.
Yep -- and I was just looking at the code you sent last week, and that
also turned out to be the same issue. If there is any non-object
element in a list, "free" will trigger a crash.
This will be fixed for the next release, but in the meantime, simply
don't free lists unless they contain only objects :).
Lists are garbage collected automatically, so you should never have to
manually "free the list". Calling free with a list is simply a
shortcut for calling free with each element of the list.
- jon klein
> Controller myController.
>
> Control: myController {
> + variables:
> testHash (hash).
> myList (list).
>
> + to init:
> myList = {{"foo", 0}, "bar"}.
> testHash{"foo"} = myList.
> print testHash{"foo"}.
>
> + to iterate:
>
> free myList.
> if (testHash{"foo"}): print testHash{"foo"}.
>
> super iterate.
> }
>
>
> Date/Time: 2004-03-07 18:30:54 -0500
> OS Version: 10.2.8 (Build 6R73)
> Host: sibeling.local.
>
> Command: breve
> PID: 16892
>
> Exception: EXC_BAD_ACCESS (0x0001)
> Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000002
>
> Thread 0:
> #0 0x9003e9a8 in semaphore_wait_signal_trap
> #1 0x9003e7c4 in _pthread_cond_wait
> #2 0x97df1868 in -[NSRecursiveLock lock]
> #3 0x000115c8 in -[slBreve updateLog:] (crt.c:300)
> #4 0x97df4dc0 in __NSFireTimer
> #5 0x90163230 in __CFRunLoopDoTimer
> #6 0x90148d28 in __CFRunLoopRun
> #7 0x90180f58 in CFRunLoopRunSpecific
> #8 0x969a3b70 in RunCurrentEventLoopInMode
> #9 0x969b3a78 in ReceiveNextEventCommon
> #10 0x969dabbc in BlockUntilNextEventMatchingListInMode
> #11 0x9308dedc in _DPSNextEvent
> #12 0x930a0158 in -[NSApplication
> nextEventMatchingMask:untilDate:inMode:dequeue:]
> #13 0x930b1d88 in -[NSApplication run]
> #14 0x9315fc58 in NSApplicationMain
> #15 0x00009f44 in _start (crt.c:267)
> #16 0x00009db8 in start
>
> Thread 1:
> #0 0x90073ba8 in mach_msg_trap
> #1 0x90005ed0 in mach_msg
> #2 0xc0009190 in __ape_internal
> #3 0xc0000efc in __ape_agent
> #4 0x90020c28 in _pthread_body
>
> Thread 2:
> #0 0x9003e9a8 in semaphore_wait_signal_trap
> #1 0x9003e7c4 in _pthread_cond_wait
> #2 0x97e34088 in -[NSConditionLock lockWhenCondition:]
> #3 0x930819a0 in -[NSUIHeartBeat _heartBeatThread:]
> #4 0x97e2cc38 in forkThreadForFunction
> #5 0x90020c28 in _pthread_body
>
> Thread 3:
> #0 0x90073ba8 in mach_msg_trap
> #1 0x90005ed0 in mach_msg
> #2 0x901489f0 in __CFRunLoopRun
> #3 0x90180f58 in CFRunLoopRunSpecific
> #4 0x94652f80 in _ZN10HALRunLoop9OwnThreadEPv
> #5 0x946591e0 in _ZN9CAPThread5EntryEPS_
> #6 0x90020c28 in _pthread_body
>
> Thread 4 Crashed:
> #0 0x0001a6f8 in stEvalFree (crt.c:300)
> #1 0x0001fee0 in stEvalExp (crt.c:300)
> #2 0x0001a814 in stEvalArray (crt.c:300)
> #3 0x0001e320 in stCallMethod (crt.c:300)
> #4 0x00023f44 in brEngineIterate (crt.c:300)
> #5 0x00013804 in -[slBreveEngine runWorld:] (crt.c:300)
> #6 0x97e2cc38 in forkThreadForFunction
> #7 0x90020c28 in _pthread_body
>
> PPC Thread State:
> srr0: 0x0001a6f8 srr1: 0x0000f030 vrsave: 0x00000000
> xer: 0x00000000 lr: 0x0001a608 ctr: 0x0001a050 mq: 0x00000000
> r0: 0x00000009 r1: 0xf01e2900 r2: 0x0001a608 r3: 0x00000000
> r4: 0x00000002 r5: 0x02dc0780 r6: 0x00000000 r7: 0x0001f008
> r8: 0x00019ff4 r9: 0x02dc0760 r10: 0x00019fb8 r11: 0x00000000
> r12: 0x00000000 r13: 0x00133724 r14: 0x00133724 r15: 0x0013ab18
> r16: 0x00000000 r17: 0x02dc2990 r18: 0x00115ae0 r19: 0x0013ac20
> r20: 0x00000000 r21: 0x00000000 r22: 0x02dbc5e0 r23: 0x00000000
> r24: 0xf01e2d40 r25: 0x0001ee6c r26: 0x0001edb0 r27: 0x00000000
> r28: 0x02dbc5e0 r29: 0x000fa5ec r30: 0x02dc08a0 r31: 0x0001a5ec
>
> _______________________________________________
> breve mailing list
> [email protected]
> http://www.spiderland.org/mailman/listinfo/breve
_______________________________________________
breve mailing list
[email protected]
http://www.spiderland.org/mailman/listinfo/breve