avoiding string conversions on 1st param of wxStat, as the latter is having a param of wxString now always and does the conversion internally

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2009-12-09 07:38:22 +00:00
parent 74b1f0b45e
commit 766fc09288
5 changed files with 8 additions and 21 deletions

View File

@@ -1079,7 +1079,7 @@ wxCopyFile (const wxString& file1, const wxString& file2, bool overwrite)
wxStructStat fbuf; wxStructStat fbuf;
// get permissions of file1 // get permissions of file1
if ( wxStat( file1.c_str(), &fbuf) != 0 ) if ( wxStat( file1, &fbuf) != 0 )
{ {
// the file probably doesn't exist or we haven't the rights to read // the file probably doesn't exist or we haven't the rights to read
// from it anyhow // from it anyhow

View File

@@ -621,16 +621,13 @@ bool wxFileName::FileExists( const wxString &filePath )
#define S_ISREG(mode) ((mode) & S_IFREG) #define S_ISREG(mode) ((mode) & S_IFREG)
#endif #endif
wxStructStat st; wxStructStat st;
#ifndef wxNEED_WX_UNISTD_H
return (wxStat( filePath.fn_str() , &st) == 0 && S_ISREG(st.st_mode)) return (wxStat( filePath, &st) == 0 && S_ISREG(st.st_mode))
#ifdef __OS2__ #ifdef __OS2__
|| (errno == EACCES) // if access is denied something with that name || (errno == EACCES) // if access is denied something with that name
// exists and is opened in exclusive mode. // exists and is opened in exclusive mode.
#endif #endif
; ;
#else
return wxStat( filePath , &st) == 0 && S_ISREG(st.st_mode);
#endif
#endif // __WIN32__/!__WIN32__ #endif // __WIN32__/!__WIN32__
} }
@@ -688,10 +685,10 @@ bool wxFileName::DirExists( const wxString &dirPath )
wxStructStat st; wxStructStat st;
#ifndef __VISAGECPP__ #ifndef __VISAGECPP__
return wxStat(strPath.c_str(), &st) == 0 && ((st.st_mode & S_IFMT) == S_IFDIR); return wxStat(strPath, &st) == 0 && ((st.st_mode & S_IFMT) == S_IFDIR);
#else #else
// S_IFMT not supported in VA compilers.. st_mode is a 2byte value only // S_IFMT not supported in VA compilers.. st_mode is a 2byte value only
return wxStat(strPath.c_str(), &st) == 0 && (st.st_mode == S_IFDIR); return wxStat(strPath, &st) == 0 && (st.st_mode == S_IFDIR);
#endif #endif
#endif // __WIN32__/!__WIN32__ #endif // __WIN32__/!__WIN32__
@@ -2587,7 +2584,7 @@ bool wxFileName::GetTimes(wxDateTime *dtAccess,
#elif defined(__UNIX_LIKE__) || defined(__WXMAC__) || defined(__OS2__) || (defined(__DOS__) && defined(__WATCOMC__)) #elif defined(__UNIX_LIKE__) || defined(__WXMAC__) || defined(__OS2__) || (defined(__DOS__) && defined(__WATCOMC__))
// no need to test for IsDir() here // no need to test for IsDir() here
wxStructStat stBuf; wxStructStat stBuf;
if ( wxStat( GetFullPath().c_str(), &stBuf) == 0 ) if ( wxStat( GetFullPath(), &stBuf) == 0 )
{ {
if ( dtAccess ) if ( dtAccess )
dtAccess->Set(stBuf.st_atime); dtAccess->Set(stBuf.st_atime);
@@ -2641,11 +2638,7 @@ wxULongLong wxFileName::GetSize(const wxString &filename)
return wxULongLong(lpFileSizeHigh, ret); return wxULongLong(lpFileSizeHigh, ret);
#else // ! __WIN32__ #else // ! __WIN32__
wxStructStat st; wxStructStat st;
#ifndef wxNEED_WX_UNISTD_H
if (wxStat( filename.fn_str() , &st) != 0)
#else
if (wxStat( filename, &st) != 0) if (wxStat( filename, &st) != 0)
#endif
return wxInvalidSize; return wxInvalidSize;
return wxULongLong(st.st_size); return wxULongLong(st.st_size);
#endif #endif

View File

@@ -943,7 +943,7 @@ bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
bool wxDoLaunchDefaultBrowser(const wxString& url, const wxString& scheme, int flags); bool wxDoLaunchDefaultBrowser(const wxString& url, const wxString& scheme, int flags);
#elif defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || \ #elif defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || \
(defined(__WXMAC__) && !defined(__WXOSX_IPHONE__)) (defined(__WXOSX__) )
// implemented in a port-specific utils source file: // implemented in a port-specific utils source file:
bool wxDoLaunchDefaultBrowser(const wxString& url, int flags); bool wxDoLaunchDefaultBrowser(const wxString& url, int flags);

View File

@@ -226,13 +226,7 @@ void wxFileData::ReadData()
lstat( m_filePath.fn_str(), &buff ); lstat( m_filePath.fn_str(), &buff );
m_type |= S_ISLNK(buff.st_mode) ? is_link : 0; m_type |= S_ISLNK(buff.st_mode) ? is_link : 0;
#else // no lstat() #else // no lstat()
// only translate to file charset if we don't go by our
// wxStat implementation
#ifndef wxNEED_WX_UNISTD_H
wxStat( m_filePath.fn_str() , &buff );
#else
wxStat( m_filePath, &buff ); wxStat( m_filePath, &buff );
#endif
#endif #endif
m_type |= (buff.st_mode & S_IFDIR) != 0 ? is_dir : 0; m_type |= (buff.st_mode & S_IFDIR) != 0 ? is_dir : 0;

View File

@@ -304,7 +304,7 @@ bool wxDir::HasSubDirs(const wxString& spec) const
// caller will learn it soon enough when it calls GetFirst(wxDIR) // caller will learn it soon enough when it calls GetFirst(wxDIR)
// anyhow // anyhow
wxStructStat stBuf; wxStructStat stBuf;
if ( wxStat(M_DIR->GetName().c_str(), &stBuf) == 0 ) if ( wxStat(M_DIR->GetName(), &stBuf) == 0 )
{ {
switch ( stBuf.st_nlink ) switch ( stBuf.st_nlink )
{ {