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:
parent
2b9d0a99cb
commit
8079ab87a2
4 changed files with 20 additions and 65 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue