aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/cores/DllLoader/Win32DllLoader.cpp2
-rw-r--r--xbmc/cores/DllLoader/exports/emu_msvcrt.cpp12
2 files changed, 7 insertions, 7 deletions
diff --git a/xbmc/cores/DllLoader/Win32DllLoader.cpp b/xbmc/cores/DllLoader/Win32DllLoader.cpp
index 89f919e5b4..2a163d8182 100644
--- a/xbmc/cores/DllLoader/Win32DllLoader.cpp
+++ b/xbmc/cores/DllLoader/Win32DllLoader.cpp
@@ -77,6 +77,8 @@ Export win32_exports[] =
{ "_fstat", -1, (void*)dll_fstat, NULL },
{ "_mkdir", -1, (void*)dll_mkdir, NULL },
{ "_stat", -1, (void*)dll_stat, NULL },
+ { "_fstat32", -1, (void*)dll_fstat, NULL },
+ { "_stat32", -1, (void*)dll_stat, NULL },
{ "_findclose", -1, (void*)dll_findclose, NULL },
{ "_findfirst", -1, (void*)dll_findfirst, NULL },
{ "_findnext", -1, (void*)dll_findnext, NULL },
diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
index 1da0896178..6897b311ac 100644
--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
@@ -1820,15 +1820,13 @@ extern "C"
CFile* pFile = g_emuFileWrapper.GetFileXbmcByDescriptor(fd);
if (pFile != NULL)
{
- if (pFile->GetLength() <= LONG_MAX)
- buffer->st_size = (_off_t)pFile->GetLength();
- else
+ struct __stat64 tStat = {};
+ if (pFile->Stat(&tStat) == 0)
{
- buffer->st_size = 0;
- CLog::Log(LOGWARNING, "WARNING: File is larger than _fstat64i32 can handle, file size will be reported as 0 bytes");
+ CUtil::Stat64ToStat64i32(buffer, &tStat);
+ return 0;
}
- buffer->st_mode = _S_IFREG;
- return 0;
+ return -1;
}
else if (!IS_STD_DESCRIPTOR(fd))
{