Commit 8bfdcfc3 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Fix a few nasty Wimp bugs

Detail:
  s/Wimp05 (setcaretcoords_fancy), s/Wimp07 - Fix some dodgy comments that had trailing backslashes, causing the next line of code to be gobbled by objasm and omitted from the compiled code. The code in question has been around for a long time, so I guess a recent objasm change (or the switch from aasm) has caused the dodgy comments to turn malicious. The setcaretcoords_fancy bug was the cause of bug #241 in the ROOL tracker.
  s/Wimp05 (int_set_caret_position) - While testing the #241 fix, I found that opening the filer 'rename' menu, typing text (enough to cause the icon to scroll), and then clicking away to close the menu would cause an infinite abort loop. The cause seemed to be int_set_caret_position mistakenly setting the caret window ptr to 0 instead of nullptr (-1), which would then cause setwindowptrs to die when it tried dereferencing what it thought was a valid pointer. Although initially confused about how this bug has gone unnoticed so far, I've now realised the abort was just down to alignment exceptions being turned on and the code would have "worked" on <=ARMv5.
Admin:
  Tested on rev C2 beagleboard.
  Fixes bug #241.


Version 5.08. Tagged as 'Wimp-5_08'
parent 4cf703e1
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.07"
Module_Version SETA 507
Module_MajorVersion SETS "5.08"
Module_Version SETA 508
Module_MinorVersion SETS ""
Module_Date SETS "06 Nov 2009"
Module_ApplicationDate SETS "06-Nov-09"
Module_Date SETS "14 Mar 2010"
Module_ApplicationDate SETS "14-Mar-10"
Module_ComponentName SETS "Wimp"
Module_ComponentPath SETS "castle/RiscOS/Sources/Desktop/Wimp"
Module_FullVersion SETS "5.07"
Module_HelpVersion SETS "5.07 (06 Nov 2009)"
Module_FullVersion SETS "5.08"
Module_HelpVersion SETS "5.08 (14 Mar 2010)"
END
/* (5.07)
/* (5.08)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 5.07
#define Module_MajorVersion_CMHG 5.08
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 06 Nov 2009
#define Module_Date_CMHG 14 Mar 2010
#define Module_MajorVersion "5.07"
#define Module_Version 507
#define Module_MajorVersion "5.08"
#define Module_Version 508
#define Module_MinorVersion ""
#define Module_Date "06 Nov 2009"
#define Module_Date "14 Mar 2010"
#define Module_ApplicationDate "06-Nov-09"
#define Module_ApplicationDate "14-Mar-10"
#define Module_ComponentName "Wimp"
#define Module_ComponentPath "castle/RiscOS/Sources/Desktop/Wimp"
#define Module_FullVersion "5.07"
#define Module_HelpVersion "5.07 (06 Nov 2009)"
#define Module_LibraryVersionInfo "5:7"
#define Module_FullVersion "5.08"
#define Module_HelpVersion "5.08 (14 Mar 2010)"
#define Module_LibraryVersionInfo "5:8"
......@@ -119,6 +119,7 @@ int_set_caret_position TraceL sc
MOV R14,#0
STR R14,caretdata+24 ; 'old caretscrollx' = 0 for sure now
MOV R14,#nullptr
STR R14,caretdata+0 ; CARET IS DEFINITELY NOT NOW HERE
BL pageinicontask ; Swap to task if icon indirected
......@@ -1157,7 +1158,7 @@ setcaretcoords_fancy TraceL sc
TEQ R2, #ISOAlphabet_UTF8
MOVNE R4, #1 ; \ non UTF-8 read
LDRNEB R6, [R1, R5] ; /
MOVEQ R4, #6 ; \
MOVEQ R4, #6 ; \.
ADDEQ R6, R1, R5 ; > UTF-8 read
BLEQ convert_UTF8_to_UCS4 ; /
CMP R6, #26 ; font change command?
......
......@@ -2765,7 +2765,7 @@ clearstack
MOV R1, #-1
STR R1, linecount ; activate line counting
LDR R2, [sp, #1*4] ; R2 -> text icon definition
LDMIA R2, {x0, y0, x1, y1} ;\
LDMIA R2, {x0, y0, x1, y1} ;\.
LDR R1, [R2, #i_flags] ; |
LDR R2, [R2, #i_data + 0] ; | set up registers for line count
[ outlinefont ; |
......
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