An object whose printed name is provided by a
short_name property defined as a routine, for example: causes a run-time stack overflow when the Infix command ;WATCH THING is typed. The problem appears to be associated with the
infix__watching attribute, which is set by InfixWatchOnSub( ).
Once an object of the form shown above has this attribute,
any attempt to print "(name) obj" crashes the interpreter.
The "(name)" print rule invokes -- in turn -- PrintShortName( ),
PSN__( ), PrintOrRun( ) and finally RunRoutines( ).
This last routine ends with the statement "return obj.prop();",
and at this point some form of infinite recursion is triggered. None submitted.
About Patches
Issue C63106 [previous patch]
Infix ;WATCH fails when object has short_name routine
Submitted by: Jim Aikin
Appeared in: Compiler 6.31 or before
Fixed in: -
Problem
Object ->
with name 'thing',
short_name [; print "thing"; rtrue; ];
Solution
Last updated 17 April 2013.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Roger Firth.