filesystem: QNX should use SDL_LoadFile() instead of rolling it from scratch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/src/filesystem/unix/SDL_sysfilesystem.c b/src/filesystem/unix/SDL_sysfilesystem.c
index 415e1d4..531d4f8 100644
--- a/src/filesystem/unix/SDL_sysfilesystem.c
+++ b/src/filesystem/unix/SDL_sysfilesystem.c
@@ -43,36 +43,7 @@
#include "SDL_filesystem.h"
/* QNX's /proc/self/exefile is a text file and not a symlink. */
-#if defined(__QNXNTO__)
-static char *
-readWholeFile(const char *path)
-{
- char *retval = (char *) SDL_malloc(PATH_MAX+1);
- if (retval != NULL)
- {
- const int fd = open(path, O_RDONLY);
- const ssize_t br = (fd == -1) ? -1 : read(fd, retval, PATH_MAX);
- char *ptr;
-
- if (fd != -1)
- close(fd);
-
- if ((br < 0) || (br > PATH_MAX))
- {
- free(retval);
- return NULL;
- } /* if */
-
- retval[br] = '\0';
-
- ptr = (char *) SDL_realloc(retval, br + 1);
- if (ptr != NULL) /* just shrinking buffer; don't care if it failed. */
- retval = ptr;
- } /* else */
-
- return retval;
-}
-#else
+#if !defined(__QNXNTO__)
static char *
readSymLink(const char *path)
{
@@ -159,7 +130,7 @@ SDL_GetBasePath(void)
#elif defined(__NETBSD__)
retval = readSymLink("/proc/curproc/exe");
#elif defined(__QNXNTO__)
- retval = readWholeFile("/proc/self/exefile");
+ retval = SDL_LoadFile("/proc/self/exefile", NULL);
#else
retval = readSymLink("/proc/self/exe"); /* linux. */
if (retval == NULL) {