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 web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Roger Firth.