diff options
author | Congcong Kuo <[email protected]> | 2025-05-27 01:49:56 +0800 |
---|---|---|
committer | Ludovic Courtès <[email protected]> | 2025-05-28 19:31:45 +0200 |
commit | 583e0688e33c4f3d7e3f1e2f30dd78690eb58fd4 (patch) | |
tree | 4540726ce9e891cce45887e2459de173436d6b62 | |
parent | c29534228ff9ac74e8c6a0e80356c21adbff9887 (diff) |
daemon: Remove ‘AutoDeleteArray’.
* libutil/util.hh (AutoDeleteArray): Remove.
* libutil/util.cc (readString, readStrings): Use ‘std::vector’ instead
of ‘AutoDeleteArray’.
* libutil/serialise.cc (readFile): Likewise.
Change-Id: I45362998dbb8226874f66b77cd19f071f7bb2ab3
Signed-off-by: Ludovic Courtès <[email protected]>
-rw-r--r-- | nix/libutil/serialise.cc | 19 | ||||
-rw-r--r-- | nix/libutil/util.cc | 7 | ||||
-rw-r--r-- | nix/libutil/util.hh | 12 |
3 files changed, 12 insertions, 26 deletions
diff --git a/nix/libutil/serialise.cc b/nix/libutil/serialise.cc index 9241750750..6f04ab1591 100644 --- a/nix/libutil/serialise.cc +++ b/nix/libutil/serialise.cc @@ -16,11 +16,11 @@ BufferedSink::~BufferedSink() delete[] buffer; } - + void BufferedSink::operator () (const unsigned char * data, size_t len) { if (!buffer) buffer = new unsigned char[bufSize]; - + while (len) { /* Optimisation: bypass the buffer if the data exceeds the buffer size. */ @@ -96,7 +96,7 @@ size_t BufferedSource::read(unsigned char * data, size_t len) if (!buffer) buffer = new unsigned char[bufSize]; if (!bufPosIn) bufPosIn = readUnbuffered(buffer, bufSize); - + /* Copy out the data in the buffer. */ size_t n = len > bufPosIn - bufPosOut ? bufPosIn - bufPosOut : len; memcpy(data, buffer + bufPosOut, n); @@ -247,18 +247,17 @@ size_t readString(unsigned char * buf, size_t max, Source & source) return len; } - + string readString(Source & source) { size_t len = readInt(source); - unsigned char * buf = new unsigned char[len]; - AutoDeleteArray<unsigned char> d(buf); - source(buf, len); - readPadding(len, source); - return string((char *) buf, len); + std::vector<unsigned char> buf(len); + source(buf.data(), buf.size()); + readPadding(buf.size(), source); + return string((char *) buf.data(), buf.size()); } - + template<class T> T readStrings(Source & source) { unsigned int count = readInt(source); diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index 56f116046c..398f61841f 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -271,11 +271,10 @@ string readFile(int fd) if (fstat(fd, &st) == -1) throw SysError("statting file"); - unsigned char * buf = new unsigned char[st.st_size]; - AutoDeleteArray<unsigned char> d(buf); - readFull(fd, buf, st.st_size); + std::vector<unsigned char> buf(st.st_size); + readFull(fd, buf.data(), buf.size()); - return string((char *) buf, st.st_size); + return string((char *) buf.data(), buf.size()); } diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh index 377aac0684..03234e3a5d 100644 --- a/nix/libutil/util.hh +++ b/nix/libutil/util.hh @@ -194,18 +194,6 @@ string drainFD(int fd); /* Automatic cleanup of resources. */ -template <class T> -struct AutoDeleteArray -{ - T * p; - AutoDeleteArray(T * p) : p(p) { } - ~AutoDeleteArray() - { - delete [] p; - } -}; - - class AutoDelete { Path path; |