Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite recursion in slotSummary / asString if a list() has a reference to higher object #178

Closed
dennisferron opened this issue Dec 31, 2011 · 1 comment

Comments

@dennisferron
Copy link
Contributor

Hitting an object containing the value "list(self)" causes an infinite recursion in slotSummary (and therefore asString, writeln and the REPL). Perhaps related to issue #36?

This surprisingly short line will hose the REPL:
Io> list(Lobby)

Or try this in a script file or in the REPL:

Io> a := Object clone do( init := method( newSlot("die", list() append(self) ) )
... )
==> Object_0x232ab70:
init = method(...)

Io> writeln(a clone)
^C
IOVM:
Received signal. Setting interrupt flag.

current coroutine


Coroutine callStack A4_Exception.io 244
Coroutine backTraceString A4_Exception.io 274
Coroutine showStack System.io 62
System userInterruptHandler [unlabeled] 0
List join A3_List.io 276
Sequence .. A3_List.io 276
List asString A3_List.io 278
List asSimpleString [unlabeled] 0
List mapInPlace [unlabeled] 0
List map A2_Object.io 271
Call relayStopStatus A4_Exception.io 24
Call delegateToMethod A0_List.io 176
Object slotDescriptionMap A2_Object.io 311
Object asString [unlabeled] 0
List join A3_List.io 276
Sequence .. A3_List.io 276
List asString A3_List.io 278
List asSimpleString [unlabeled] 0

Press enter...

@stevedekorte
Copy link
Member

Yes, this looks like a duplicate of #36 so I'm closing this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants