From 41805f583fe9d34f5aefb39d74c798d264b40291 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 4 Nov 2012 23:44:13 -0800 Subject: [PATCH] Added SDL_ReadU8() and SDL_WriteU8() for consistency with the rest of the API. --- include/SDL_rwops.h | 2 ++ src/file/SDL_rwops.c | 27 +++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/include/SDL_rwops.h b/include/SDL_rwops.h index 023baa68d..dbd2a0ce0 100644 --- a/include/SDL_rwops.h +++ b/include/SDL_rwops.h @@ -186,6 +186,7 @@ extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); * Read an item of the specified endianness and return in native format. */ /*@{*/ +extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); @@ -200,6 +201,7 @@ extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); * Write an item of native format to the specified endianness. */ /*@{*/ +extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); diff --git a/src/file/SDL_rwops.c b/src/file/SDL_rwops.c index 494955423..225d0a1d6 100644 --- a/src/file/SDL_rwops.c +++ b/src/file/SDL_rwops.c @@ -640,10 +640,19 @@ SDL_FreeRW(SDL_RWops * area) /* Functions for dynamically reading and writing endian-specific values */ +Uint8 +SDL_ReadU8(SDL_RWops * src) +{ + Uint8 value = 0; + + SDL_RWread(src, &value, (sizeof value), 1); + return value; +} + Uint16 SDL_ReadLE16(SDL_RWops * src) { - Uint16 value; + Uint16 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapLE16(value)); @@ -652,7 +661,7 @@ SDL_ReadLE16(SDL_RWops * src) Uint16 SDL_ReadBE16(SDL_RWops * src) { - Uint16 value; + Uint16 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapBE16(value)); @@ -661,7 +670,7 @@ SDL_ReadBE16(SDL_RWops * src) Uint32 SDL_ReadLE32(SDL_RWops * src) { - Uint32 value; + Uint32 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapLE32(value)); @@ -670,7 +679,7 @@ SDL_ReadLE32(SDL_RWops * src) Uint32 SDL_ReadBE32(SDL_RWops * src) { - Uint32 value; + Uint32 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapBE32(value)); @@ -679,7 +688,7 @@ SDL_ReadBE32(SDL_RWops * src) Uint64 SDL_ReadLE64(SDL_RWops * src) { - Uint64 value; + Uint64 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapLE64(value)); @@ -688,12 +697,18 @@ SDL_ReadLE64(SDL_RWops * src) Uint64 SDL_ReadBE64(SDL_RWops * src) { - Uint64 value; + Uint64 value = 0; SDL_RWread(src, &value, (sizeof value), 1); return (SDL_SwapBE64(value)); } +size_t +SDL_WriteU8(SDL_RWops * dst, Uint8 value) +{ + return (SDL_RWwrite(dst, &value, (sizeof value), 1)); +} + size_t SDL_WriteLE16(SDL_RWops * dst, Uint16 value) {