Error handling improvement. Really?
André Timmermans (100) 655 posts |
I have noticed this in the latest merge:
Where the X was added in XWimp_ReadSysInfo. I get using the X form, but it should perform a MOVVS R0, #0 or another suitably low WimpVersion value if the call fails to avoid the error pointer simulating a ridiculously high WimpVersion value. |
Sprow (202) 1153 posts |
The only outcome of the highness/lowness of the version is whether it sets or clears 2 internal flags. Those flags are only inspected when an application wants to use a filter, Filter Manager wants to register with the Wimp, or Filter Manager is called by the Wimp. In the 1st case, how is the application running? There’s no Wimp, we already established that. In the 2nd case how would it register with the Wimp? There’s no Wimp, we already established that. In the 3rd case how would it be called? There’s no Wimp, we already established that. |
André Timmermans (100) 655 posts |
So it works because because we are in conditions where we don’t care if it sets the flags incorrectly? Scary! |
Steve Pampling (1551) 8154 posts |
There is so much of the OS that doesn’t check input parameter limits, that one item like that gets lost in the background noise. |
Rick Murray (539) 13806 posts |
We’re in conditions, it would seem, that the call literally cannot fail as the Wimp must exist to get to that point. But as Steve points out… ;) |
Paolo Fabio Zaino (28) 1853 posts |
yup :( RAM is not clocked @ 8Mhz by a while I think… we’re not using an ARM2 by a while too (IIRC!), so why aren’t we trying to improve at least the API robustness? Do people really like their RISC OS machines crashing in the name of “I want all the control”?1 Vive le retro’ :) 1 Sorry for the sarcasm, just had a day of retro tech behaving in all sorts of bizarre manners lol |