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