1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 00:11:17 +02:00

AutoCloseDir: Use std::unique_ptr

This commit is contained in:
Eelco Dolstra 2017-01-16 22:39:27 +01:00
parent 2b9d0a99cb
commit 8079ab87a2
4 changed files with 20 additions and 65 deletions

View file

@ -234,11 +234,11 @@ DirEntries readDirectory(const Path & path)
DirEntries entries;
entries.reserve(64);
AutoCloseDir dir = opendir(path.c_str());
AutoCloseDir dir(opendir(path.c_str()));
if (!dir) throw SysError(format("opening directory %1%") % path);
struct dirent * dirent;
while (errno = 0, dirent = readdir(dir)) { /* sic */
while (errno = 0, dirent = readdir(dir.get())) { /* sic */
checkInterrupt();
string name = dirent->d_name;
if (name == "." || name == "..") continue;
@ -642,48 +642,6 @@ void Pipe::create()
//////////////////////////////////////////////////////////////////////
AutoCloseDir::AutoCloseDir()
{
dir = 0;
}
AutoCloseDir::AutoCloseDir(DIR * dir)
{
this->dir = dir;
}
AutoCloseDir::~AutoCloseDir()
{
close();
}
void AutoCloseDir::operator =(DIR * dir)
{
this->dir = dir;
}
AutoCloseDir::operator DIR *()
{
return dir;
}
void AutoCloseDir::close()
{
if (dir) {
closedir(dir);
dir = 0;
}
}
//////////////////////////////////////////////////////////////////////