mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-13 13:28:49 +00:00
At least use long for return type of read_file().
int is not acceptable as a return type for anything regarding sizes. long is dubious as well, but better (64-bit on sane ABIs and the return type of ftell()).
This commit is contained in:
parent
a91c416720
commit
e5bedc343a
@ -18,9 +18,7 @@
|
||||
#include <string.h>
|
||||
#include "file_list.h"
|
||||
#include "compat/strcasestr.h"
|
||||
#ifdef _MSC_VER
|
||||
#include "msvc/msvc_compat.h"
|
||||
#endif
|
||||
|
||||
struct item_file
|
||||
{
|
||||
|
14
file_path.c
14
file_path.c
@ -71,12 +71,12 @@ bool write_file(const char *path, const void *data, size_t size)
|
||||
}
|
||||
|
||||
// Generic file loader.
|
||||
int read_file(const char *path, void **buf)
|
||||
long read_file(const char *path, void **buf)
|
||||
{
|
||||
long rc = 0, len = 0;
|
||||
void *rom_buf = NULL;
|
||||
FILE *file = fopen(path, "rb");
|
||||
ssize_t rc = 0;
|
||||
size_t len = 0;
|
||||
|
||||
if (!file)
|
||||
goto error;
|
||||
|
||||
@ -90,13 +90,13 @@ int read_file(const char *path, void **buf)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if ((rc = fread(rom_buf, 1, len, file)) < (ssize_t)len)
|
||||
if ((rc = fread(rom_buf, 1, len, file)) < len)
|
||||
RARCH_WARN("Didn't read whole file.\n");
|
||||
|
||||
*buf = rom_buf;
|
||||
// Allow for easy reading of strings to be safe.
|
||||
// Will only work with sane character formatting (Unix).
|
||||
((char*)rom_buf)[len] = '\0';
|
||||
((char*)rom_buf)[len] = '\0';
|
||||
fclose(file);
|
||||
return rc;
|
||||
|
||||
@ -113,12 +113,14 @@ bool read_file_string(const char *path, char **buf)
|
||||
{
|
||||
*buf = NULL;
|
||||
FILE *file = fopen(path, "r");
|
||||
size_t len = 0;
|
||||
long len = 0;
|
||||
char *ptr = NULL;
|
||||
|
||||
if (!file)
|
||||
goto error;
|
||||
|
||||
// ftell with "r" can be troublesome ...
|
||||
// Haven't run into issues yet though.
|
||||
fseek(file, 0, SEEK_END);
|
||||
len = ftell(file) + 2; // Takes account of being able to read in EOF and '\0' at end.
|
||||
rewind(file);
|
||||
|
@ -26,7 +26,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int read_file(const char *path, void **buf);
|
||||
long read_file(const char *path, void **buf);
|
||||
bool read_file_string(const char *path, char **buf);
|
||||
bool write_file(const char *path, const void *buf, size_t size);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user