summaryrefslogtreecommitdiff
path: root/apt-pkg/deb
diff options
context:
space:
mode:
authorнаб <nabijaczleweli@nabijaczleweli.xyz>2024-11-11 16:21:04 +0100
committerнаб <nabijaczleweli@nabijaczleweli.xyz>2024-11-12 13:46:18 +0100
commit83e4e77dc2ac0c2a03769f5ccc6649bd6594c480 (patch)
treef22a18bbbea39ae2a020463173f1d7ec2b531f1d /apt-pkg/deb
parent9f81a8dd0ee585a360ae0ae7786959630a8d0be0 (diff)
pkgDPkgPMPrivate::dpkgbuf: char[1024] -> array<char, APT_BUFFER_SIZE>
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r--apt-pkg/deb/dpkgpm.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 31f81af7c..461a901d3 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -117,7 +117,7 @@ public:
bool stdin_is_dev_null;
bool status_fd_reached_end_of_file;
// the buffer we use for the dpkg status-fd reading
- char dpkgbuf[1024];
+ std::array<char, APT_BUFFER_SIZE> dpkgbuf;
size_t dpkgbuf_pos;
FILE *term_out;
FILE *history_out;
@@ -947,7 +947,7 @@ void pkgDPkgPM::handleCrossUpgradeAction(string const &pkgname) /*{{{*/
// DPkgPM::DoDpkgStatusFd /*{{{*/
void pkgDPkgPM::DoDpkgStatusFd(int statusfd)
{
- auto const remainingBuffer = (sizeof(d->dpkgbuf) / sizeof(d->dpkgbuf[0])) - d->dpkgbuf_pos;
+ auto const remainingBuffer = d->dpkgbuf.size() - d->dpkgbuf_pos;
if (likely(remainingBuffer > 0) && d->status_fd_reached_end_of_file == false)
{
auto const len = read(statusfd, &d->dpkgbuf[d->dpkgbuf_pos], remainingBuffer);
@@ -958,12 +958,12 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd)
d->status_fd_reached_end_of_file = true;
return;
}
- d->dpkgbuf_pos += (len / sizeof(d->dpkgbuf[0]));
+ d->dpkgbuf_pos += len;
}
// process line by line from the buffer
- char *p = d->dpkgbuf, *q = nullptr;
- while((q=(char*)memchr(p, '\n', (d->dpkgbuf + d->dpkgbuf_pos) - p)) != nullptr)
+ char *p = d->dpkgbuf.data(), *q = nullptr;
+ while((q=(char*)memchr(p, '\n', &d->dpkgbuf[d->dpkgbuf_pos] - p)) != nullptr)
{
*q = '\0';
ProcessDpkgStatusLine(p);
@@ -971,15 +971,15 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd)
}
// check if we stripped the buffer clean
- if (p > (d->dpkgbuf + d->dpkgbuf_pos))
+ if (p > (d->dpkgbuf.data() + d->dpkgbuf_pos))
{
d->dpkgbuf_pos = 0;
return;
}
// otherwise move the unprocessed tail to the start and update pos
- memmove(d->dpkgbuf, p, (p - d->dpkgbuf));
- d->dpkgbuf_pos = (d->dpkgbuf + d->dpkgbuf_pos) - p;
+ memmove(d->dpkgbuf.data(), p, (p - d->dpkgbuf.data()));
+ d->dpkgbuf_pos = &d->dpkgbuf[d->dpkgbuf_pos] - p;
}
/*}}}*/
// DPkgPM::WriteHistoryTag /*{{{*/