Bug mit PeekQ() in If - Bedingung ?
Verfasst: 12.09.2006 00:31
Ich glaube ich habe einen Bug gefunden
Wenn man den Speicher mit PeekQ ausliest, dann ist eine erfolgreiche
If-Bedingung abhängig, ob man PeekQ vor oder nach das = setzt
Vergleicht man ohne Addition im Argument von PeekQ ist alles
ok, wenn man aber ein offset dazuaddiert (hier ist es 0) dann funktioniert
der Vergleich nicht, wenn PeekQ auf der rechten Seite steht
Mit Longs ist alles ok. Ich hab extra die neueste Version von PB4.0
runtergeladen, aber da gehts auch nicht.
Kann das wer bestätigen und bitte auch weitermelden? Ich bin im
englischen Forum nicht angemeldet und mein Englisch ist
Danke LUPO


Wenn man den Speicher mit PeekQ ausliest, dann ist eine erfolgreiche
If-Bedingung abhängig, ob man PeekQ vor oder nach das = setzt

Code: Alles auswählen
zahl.q
zahl = 66
offset.l = 0
*buffer.l = AllocateMemory(16)
PokeQ(*buffer, zahl)
Debug PeekQ(*buffer)
; OK
If PeekQ(*buffer) = zahl
Debug "OK"
Else
Debug "WRONG"
EndIf
; OK
If zahl = PeekQ(*buffer)
Debug "OK"
Else
Debug "WRONG"
EndIf
;OK
If PeekQ(*buffer + offset) = zahl
Debug "OK"
Else
Debug "WRONG"
EndIf
; NOT OK !!!!
If zahl = PeekQ(*buffer + offset)
Debug "OK"
Else
Debug "WRONG"
EndIf
FreeMemory(*buffer)
ok, wenn man aber ein offset dazuaddiert (hier ist es 0) dann funktioniert
der Vergleich nicht, wenn PeekQ auf der rechten Seite steht

Mit Longs ist alles ok. Ich hab extra die neueste Version von PB4.0
runtergeladen, aber da gehts auch nicht.
Kann das wer bestätigen und bitte auch weitermelden? Ich bin im
englischen Forum nicht angemeldet und mein Englisch ist


Danke LUPO