Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue C63101

Strict check for property array access
Submitted by: Roger Firth     Appeared in: Compiler 6.31     Fixed in: -
Problem

Compiler bug C62125, fixed in release 6.30 of the compiler, was triggered by the use of obj.prop (instead of obj.&prop-->0) to access the first word of a common property array. The Release Notes state:

Strict mode now tests for the use of @put_prop or @get_prop opcodes when a common property is longer than two bytes -- the Z-Machine Standards Document says that this is illegal, and that the result is unspecified. The error message is of the form "[** Programming error: obj (object number N) has a property prop, but it is longer than 2 bytes so you cannot use "." to read **]". This means that you have used the obj.prop construct in the situation where is a common property containing two or more values; typically prop is being explicitly used as an array, or it's an additive property and both obj and its parent class have defined values for it. The problem does not occur if prop is an individual property.

The problem is that the 6.31 compiler is now generating this error when using obj.prop to access the first word of an individual property array.

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.