Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

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

An object whose printed name is provided by a short_name property defined as a routine, for example:

  Object  ->
    with  name 'thing',
          short_name [; print "thing"; rtrue; ];

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.

Solution

None submitted.


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.