Commit ca949d87 authored by Andrew Hodgkinson's avatar Andrew Hodgkinson
Browse files

No longer trashes the task's flags to Wimp_Poll. It used to ANT the flags with...

No longer trashes the task's flags to Wimp_Poll. It used to ANT the flags with a word that only preserved specific bits; notably, it would clear the pollword high priority (23) and preserve/save FP (24) bits.

The latter means the FPSR gets reset, which is a bit of a pain if you
are relying on it being preserved (e.g. any task using the Mozilla
sourced JS interpreter...!).

Tested on RISC OS 3.71 and 3.11. Version number incremented to 0.40
for the Risc PC build (assumes resources are present in ResourceFS) and
0.37 for the stand-alone build (makes no such assumptions).
parent 36dee2ea
......@@ -37,9 +37,32 @@
#include "task.h"
#include "trace.h"
#define MASK_ALL \
(wimp_MASK_NULL | wimp_MASK_LEAVING | wimp_MASK_ENTERING | \
wimp_MASK_LOSE | wimp_MASK_GAIN | wimp_MASK_POLLWORD)
/*
* (ADH 03/11/1998) MASK_ALL used to consist of the
* following, OR'd together:
*
* wimp_MASK_NULL
* wimp_MASK_LEAVING
* wimp_MASK_ENTERING
* wimp_MASK_LOSE
* wimp_MASK_GAIN
* wimp_MASK_POLLWORD
*
* But this means that 'Preserve FP', 'Scan pollword at
* high priority' etc. and all reserved flags are forced
* clear. This is bad (particularly the preserve FP bit).
* Instead express MASK_ALL to keep all the bits that the
* task sets, except for a specific list we want to make
* sure are cleared.
*/
#define MASK_ALL (0xffffffff & \
(~(wimp_QUEUE_REDRAW)) & \
(~(wimp_QUEUE_MOUSE)) & \
(~(wimp_QUEUE_KEY)) & \
(~(wimp_MASK_MESSAGE)) & \
(~(wimp_MASK_RECORDED)) & \
(~(wimp_MASK_ACKNOWLEDGE)))
/*------------------------------------------------------------------------*/
typedef struct task_thread *task_thread;
......
......@@ -14,7 +14,7 @@
;
title-string: ColourPicker
help-string: Colour_Picker 0.39
help-string: Colour_Picker 0.40
swi-chunk-base-number: 0x47700
......
......@@ -14,7 +14,7 @@
;
title-string: ColourPicker
help-string: Colour_Picker 0.36
help-string: Colour_Picker 0.37
swi-chunk-base-number: 0x47700
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment