diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp index 882b3cdc..5705a5b3 100644 --- a/taglib/toolkit/tfilestream.cpp +++ b/taglib/toolkit/tfilestream.cpp @@ -56,10 +56,10 @@ namespace { const DWORD access = readOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE); - if(!path.wstr().empty()) - return CreateFileW(path.wstr().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - else if(!path.str().empty()) - return CreateFileA(path.str().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); + if(path.wstr()[0] != L'\0') + return CreateFileW(path.wstr(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); + else if(path.str()[0] != '\0') + return CreateFileA(path.str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); else return InvalidFileHandle; } diff --git a/taglib/toolkit/tiostream.cpp b/taglib/toolkit/tiostream.cpp index 80570cab..6c1ed6f7 100644 --- a/taglib/toolkit/tiostream.cpp +++ b/taglib/toolkit/tiostream.cpp @@ -129,14 +129,14 @@ FileName &FileName::operator=(const FileName &name) return *this; } -const std::wstring &FileName::wstr() const +const wchar_t *FileName::wstr() const { - return d->data->wname; + return d->data->wname.c_str(); } -const std::string &FileName::str() const +const char *FileName::str() const { - return d->data->name; + return d->data->name.c_str(); } String FileName::toString() const diff --git a/taglib/toolkit/tiostream.h b/taglib/toolkit/tiostream.h index e856f765..d0aa8877 100644 --- a/taglib/toolkit/tiostream.h +++ b/taglib/toolkit/tiostream.h @@ -46,8 +46,8 @@ namespace TagLib { FileName &operator=(const FileName &name); - const std::wstring &wstr() const; - const std::string &str() const; + const wchar_t *wstr() const; + const char *str() const; String toString() const;