summaryrefslogtreecommitdiff
path: root/apps/plugins/sdl/progs/quake/common.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2019-07-24 21:01:44 -0400
committerFranklin Wei <git@fwei.tk>2019-07-24 21:02:11 -0400
commit7e4902bf6bfcf0acef0889bf4e3fae04a8839079 (patch)
tree27af47d9ca18184c0f52c76282284c6fa016148e /apps/plugins/sdl/progs/quake/common.c
parent7bef453e0318acee10adbc2b561ba7d2f4b81fe3 (diff)
downloadrockbox-7e4902bf6bfcf0acef0889bf4e3fae04a8839079.tar.gz
rockbox-7e4902bf6bfcf0acef0889bf4e3fae04a8839079.zip
quake: fix errorneous endian-correcting reads
ef9ee89 introduced Read{Big,Little}{Short,Long,Float} functions to safely read a value in memory. These incorrectly take char*, which causes them to output erroneous 0xff bytes when given bytes with bit 7 set. Change-Id: I9531172301aecfdacae405d2f782f662608ce6df
Diffstat (limited to 'apps/plugins/sdl/progs/quake/common.c')
-rw-r--r--apps/plugins/sdl/progs/quake/common.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/apps/plugins/sdl/progs/quake/common.c b/apps/plugins/sdl/progs/quake/common.c
index 5e842b09ae..5191af8c36 100644
--- a/apps/plugins/sdl/progs/quake/common.c
+++ b/apps/plugins/sdl/progs/quake/common.c
@@ -499,28 +499,28 @@ float FloatNoSwap (float f)
499} 499}
500 500
501// safe for unaligned accesses 501// safe for unaligned accesses
502short ReadLittleShort (char *l) 502short ReadLittleShort (unsigned char *l)
503{ 503{
504 return *(l + 0) | (*(l + 1) << 8); 504 return *(l + 0) | (*(l + 1) << 8);
505} 505}
506 506
507short ReadBigShort (char *l) 507short ReadBigShort (unsigned char *l)
508{ 508{
509 return *(l + 1) | (*(l + 0) << 8); 509 return *(l + 1) | (*(l + 0) << 8);
510} 510}
511 511
512int ReadLittleLong (char *l) 512int ReadLittleLong (unsigned char *l)
513{ 513{
514 return *(l + 0) | (*(l + 1) << 8) | (*(l + 2) << 16) | (*(l + 3) << 24); 514 return *(l + 0) | (*(l + 1) << 8) | (*(l + 2) << 16) | (*(l + 3) << 24);
515} 515}
516 516
517int ReadBigLong (char *l) 517int ReadBigLong (unsigned char *l)
518{ 518{
519 return *(l + 3) | (*(l + 2) << 8) | (*(l + 1) << 16) | (*(l + 0) << 24); 519 return *(l + 3) | (*(l + 2) << 8) | (*(l + 1) << 16) | (*(l + 0) << 24);
520} 520}
521 521
522// same 522// same
523float ReadLittleFloat (char *f) 523float ReadLittleFloat (unsigned char *f)
524{ 524{
525 union 525 union
526 { 526 {
@@ -536,7 +536,7 @@ float ReadLittleFloat (char *f)
536 return dat2.f; 536 return dat2.f;
537} 537}
538 538
539float ReadBigFloat (char *f) 539float ReadBigFloat (unsigned char *f)
540{ 540{
541 union 541 union
542 { 542 {