Fix wxReadlink signature to return ssize_t

Introduced in 53bd139, wxReadlink() trivially wraps readlink(), but
returned int instead of ssize_t as defined for readlink() by POSIX.

Fixes "Implicit conversion loses integer precision: 'ssize_t' (aka
'long') to 'int'" on platforms with sizeof(ssize_t)>sizeof(int).
This commit is contained in:
Václav Slavík
2021-04-18 11:00:41 +02:00
parent c6d6ec9295
commit 15b0648041
2 changed files with 2 additions and 2 deletions

View File

@@ -410,7 +410,7 @@ inline int wxOpen(const wxString& path, int flags, mode_t mode)
{ return wxCRT_Open(path.fn_str(), flags, mode); }
#if defined(wxHAS_NATIVE_READLINK)
inline int wxReadlink(const wxString& path, char* buf, int size)
inline ssize_t wxReadlink(const wxString& path, char* buf, int size)
{ return wxCRT_Readlink(path.fn_str(), buf, size); }
#endif

View File

@@ -1698,7 +1698,7 @@ wxFileName wxFileName::ResolveLink()
bufSize = st.st_size + 1;
char buf[bufSize];
int result = wxReadlink(link, buf, bufSize - 1);
ssize_t result = wxReadlink(link, buf, bufSize - 1);
if ( result != -1 )
{