OS_ChangeDynamicArea PostGrow handler
Adrian Lees (1349) 122 posts |
Minor: CallPostGrow is invoked within ChangeDynamicSWI (Kernel.s.ChangeDyn) and branches to error-handling code (BVS %FT95) which attempts to return an error. However, CallPostGrow has restored its input R0, with the result being that ultimately the error gets replaced with “SWI &2A returned a bad error pointer”. The documentation does say ‘All registers preserved’ for the PostGrow(1) handler and mentions no opportunity to return an error block with V set; so it’s rather inconsistent and difficult to track down if this occurs accidentally….trust me ;) |
Jeffrey Lee (213) 6048 posts |
It took a while for me to get around to it (and a bit of prompting!), but this is now fixed. Thanks! https://gitlab.riscosopen.org/RiscOS/Sources/Kernel/commit/8c2cae4ab524ded0a5ec480a5d9ede417dab968f |