Object: ignore selector when "0" in signal map.

This commit is contained in:
Martin Preuss
2026-01-19 18:35:28 +01:00
parent ebb20150ca
commit b1a002013a

View File

@@ -502,15 +502,18 @@ objGetHandlerFromSignalMap_loop:
tst r23 ; end of table?
clc
breq objGetHandlerFromSignalMap_done ; yes, jmp
cp r16, r23 ; signal match?
brne objGetHandlerFromSignalMap_next ; no, next
cp r17, r22 ; selector match?
brne objGetHandlerFromSignalMap_next ; no, next
mov r23, r18 ; handler==NULL?
cp r16, r23 ; signal match?
brne objGetHandlerFromSignalMap_next ; no, next
tst r22
breq objGetHandlerFromSignalMap_checkHandler ; accept any selector if it is 0 in table
cp r17, r22 ; selector match?
brne objGetHandlerFromSignalMap_next ; no, next
objGetHandlerFromSignalMap_checkHandler:
mov r23, r18 ; handler==NULL?
or r23, r19
clc
breq objGetHandlerFromSignalMap_done ; yes, done
sec ; found handler, return in r19:r18
breq objGetHandlerFromSignalMap_done ; yes, done
sec ; found handler, return in r19:r18
rjmp objGetHandlerFromSignalMap_done
objGetHandlerFromSignalMap_next:
rjmp objGetHandlerFromSignalMap_loop