]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/windows/stat.cpp
Use nullptr instead of 0 for pointers
[libs/core.git] / source / fs / windows / stat.cpp
index f0cbdb653a743a0538f1948de4479e1a3490ea8f..8331e6068c5e28606226e0a26e2d456591c9920c 100644 (file)
@@ -13,7 +13,7 @@ namespace {
 PSID copy_sid(PSID sid)
 {
        if(!sid || !IsValidSid(sid))
-               return 0;
+               return nullptr;
        DWORD len = GetLengthSid(sid);
        PSID copy = reinterpret_cast<PSID>(HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len));
        if(!CopySid(len, copy, sid))
@@ -32,7 +32,7 @@ string get_account_name(PSID sid)
        char domain[1024];
        DWORD dlen = sizeof(domain);
        SID_NAME_USE use;
-       if(!LookupAccountSid(0, sid, name, &nlen, domain, &dlen, &use))
+       if(!LookupAccountSid(nullptr, sid, name, &nlen, domain, &dlen, &use))
                throw Msp::system_error("LookupAccountSid");
        return Msp::format("%s/%s", name, domain);
 }
@@ -50,20 +50,20 @@ Stat::Private::Private(const Private &other):
 
 Stat::Private::~Private()
 {
-       if(owner_id)
+       if(owner_id!=INVALID_UID)
                HeapFree(GetProcessHeap(), 0, owner_id);
-       if(group_id)
+       if(group_id!=INVALID_GID)
                HeapFree(GetProcessHeap(), 0, group_id);
 }
 
 void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
 {
-       if(owner_id)
+       if(owner_id!=INVALID_UID)
                result.owner = get_account_name(owner_id);
        else
                result.owner = "None";
 
-       if(group_id)
+       if(group_id!=INVALID_GID)
                result.group = get_account_name(group_id);
        else
                result.group = "None";
@@ -73,14 +73,14 @@ void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
 Stat Stat::stat(const Path &path)
 {
        HANDLE handle;
-       handle = CreateFile(path.str().c_str(), READ_CONTROL, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, 0);
+       handle = CreateFile(path.str().c_str(), READ_CONTROL, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, nullptr);
        if(handle==INVALID_HANDLE_VALUE)
        {
                DWORD err = GetLastError();
-               if(err==ERROR_FILE_NOT_FOUND)
+               if(err==ERROR_FILE_NOT_FOUND || err==ERROR_PATH_NOT_FOUND)
                        return Stat();
                else
-                       throw system_error("CreateFile", err);
+                       throw system_error(format("CreateFile(%s)", path), err);
        }
 
        BY_HANDLE_FILE_INFORMATION info;
@@ -91,6 +91,7 @@ Stat Stat::stat(const Path &path)
        }
 
        Stat result;
+       result.exists = true;
        if(info.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
                result.type = DIRECTORY;
        else
@@ -101,10 +102,10 @@ Stat Stat::stat(const Path &path)
        result.mtime = Time::TimeStamp(Time::filetime_to_rawtime(info.ftLastWriteTime));
 
        PSECURITY_DESCRIPTOR sec_desc;
-       PSID owner = 0;
-       PSID group = 0;
+       PSID owner = nullptr;
+       PSID group = nullptr;
        const SECURITY_INFORMATION sec_info = OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION;
-       DWORD err = GetSecurityInfo(handle, SE_FILE_OBJECT, sec_info, &owner, &group, 0, 0, &sec_desc);
+       DWORD err = GetSecurityInfo(handle, SE_FILE_OBJECT, sec_info, &owner, &group, nullptr, nullptr, &sec_desc);
        if(err)
        {
                CloseHandle(handle);