OS_ChangeDynamicArea sends wrong value to Service_Memory
Julie Stamp (8365) 469 posts |
Symptom: Cause: This only happens when starting as single-tasking because for the first task the Wimp does SYS"OS_ChangeDynamicArea",6,&3FFFFFFF (enlarge free pool as much as possible) which results in the attempt to shrink the app slot. |
Julie Stamp (8365) 469 posts |
Obviously a BASIC Wimp program works if it is not being started as the first task; the difference is that for the first task the Wimp calls OS_ChangeDynamicArea as above, but for subsequent tasks it calls Service_Memory directly itself with the correctly signed value. |
David J. Ruck (33) 1586 posts |
Assuming this gets fixed, you should see a “Invalid Wimp operation in this context” error from Wimp_Initialise, and consider yourself to be thoroughly told off for being outside the desktop. |
Jeffrey Lee (213) 6048 posts |
I’m looking into this now. Service_Memory was easy to fix, but then I found a couple of other bugs of mine which are turning out to be a bit more stubborn. All of these look like they were introduced when I added the PMP support. D’oh! |
Jeffrey Lee (213) 6048 posts |
The OS_ChangeDynamicArea problems should be fixed now – thanks! https://gitlab.riscosopen.org/RiscOS/Sources/Kernel/-/merge_requests/30 |
Julie Stamp (8365) 469 posts |
I <3 PMPs |