walton%DEImos.Caltech.Edu@Hamlet.Caltech.Edu (03/28/86)
From: walton%DEImos.Caltech.Edu@Hamlet.Caltech.Edu I have been moving HACK to my Aztec C compiler, and found and fixed some bugs. The non-Amiga-specific stuff was thoroughly LINTed, and had no problems. I made the following general changes: (1) Made sure that malloc() was declared as returning char * wherever it was used. (2) Surrounded all references to signal() and <signal.h> with #if UNIX preprocessor statements. (3) Changed structure-valued functions to void-valued, and rewrote them to expect a pointer to a structure as an argument. Aztec C V3.20a doesn't allow functions to return structures by value. A few days ago, someone posted a message to the effect that commenting out FreeDiskObject in hack.icon.c stopped the game from crashing the system when you saved a game. The problem is not in that call, but in the previous one. The line if ( (object = PutDiskObject(name, object)) == NULL) should be if (! PutDiskObject(name, object)) since PutDiskObject returns a short flag (1 for success, 0 for failure) which clobbered the value of the pointer object, which was then handed to FreeDiskObject, causing the crash. Steve Walton ARPA: walton%deimos@hamlet.caltech.edu Caltech Solar Astronomy BITNET:swalton@caltech.bitnet Physics DECNET: DEIMOS::WALTON UUCP: your guess is as good as mine...