Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Change how Unix version of __PHYSFS_platformCurrentDir() allocates me…
…mory.
  • Loading branch information
icculus committed Mar 11, 2012
1 parent 7a8e3de commit b7e0ec7
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions src/platform_unix.c
Expand Up @@ -307,18 +307,13 @@ char *__PHYSFS_platformRealPath(const char *path)

char *__PHYSFS_platformCurrentDir(void)
{
/*
* This can't just do platformRealPath("."), since that would eventually
* just end up calling back into here.
*/

int allocSize = 0;
int allocSize = 64;
char *retval = NULL;
char *ptr;

do
{
allocSize += 100;
allocSize *= 2;
ptr = (char *) allocator.Realloc(retval, allocSize);
if (ptr == NULL)
{
Expand All @@ -333,15 +328,17 @@ char *__PHYSFS_platformCurrentDir(void)

if (ptr == NULL && errno)
{
/*
* getcwd() failed for some reason, for example current
* directory not existing.
*/
/* getcwd() failed , for example current directory not existing... */
if (retval != NULL)
allocator.Free(retval);
BAIL_MACRO(ERR_NO_SUCH_FILE, NULL);
} /* if */

/* try to shrink buffer... */
ptr = (char *) allocator.Realloc(retval, strlen(retval) + 1);
if (ptr != NULL)
retval = ptr; /* oh well if it failed. */

return retval;
} /* __PHYSFS_platformCurrentDir */

Expand Down

0 comments on commit b7e0ec7

Please sign in to comment.