summaryrefslogtreecommitdiff
path: root/apt-pkg/tagfile.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2013-08-15 17:26:30 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2013-08-15 17:39:24 +0200
commit4b2803b8ff72b0c865c6539b2f99abea5ceee4c6 (patch)
tree90bef4ff84a24d9bd5dc934af8f11639500e3faa /apt-pkg/tagfile.cc
parent0aae6d14390193e25ab6d0fd49295bd7b131954f (diff)
use malloc instead of new[] in pkgTagFile
We don't need initialized memory for pkgTagFile, but more to the point we can use realloc this way which hides the bloody details of increasing the size of the buffer used. Git-Dch: Ignore
Diffstat (limited to 'apt-pkg/tagfile.cc')
-rw-r--r--apt-pkg/tagfile.cc30
1 files changed, 15 insertions, 15 deletions
diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc
index aa0f1eee8..10bc08d95 100644
--- a/apt-pkg/tagfile.cc
+++ b/apt-pkg/tagfile.cc
@@ -58,18 +58,19 @@ pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long long Size)
d = new pkgTagFilePrivate(pFd, Size);
if (d->Fd.IsOpen() == false)
- {
d->Start = d->End = d->Buffer = 0;
+ else
+ d->Buffer = (char*)malloc(sizeof(char) * Size);
+
+ if (d->Buffer == NULL)
d->Done = true;
- d->iOffset = 0;
- return;
- }
-
- d->Buffer = new char[Size];
+ else
+ d->Done = false;
+
d->Start = d->End = d->Buffer;
- d->Done = false;
d->iOffset = 0;
- Fill();
+ if (d->Done == false)
+ Fill();
}
/*}}}*/
// TagFile::~pkgTagFile - Destructor /*{{{*/
@@ -77,11 +78,11 @@ pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long long Size)
/* */
pkgTagFile::~pkgTagFile()
{
- delete [] d->Buffer;
+ free(d->Buffer);
delete d;
}
/*}}}*/
-// TagFile::Offset - Return the current offset in the buffer /*{{{*/
+// TagFile::Offset - Return the current offset in the buffer /*{{{*/
unsigned long pkgTagFile::Offset()
{
return d->iOffset;
@@ -103,14 +104,13 @@ bool pkgTagFile::Resize()
bool pkgTagFile::Resize(unsigned long long const newSize)
{
unsigned long long const EndSize = d->End - d->Start;
- char *tmp;
// get new buffer and use it
- tmp = new char[newSize];
- memcpy(tmp, d->Buffer, d->Size);
+ char* newBuffer = (char*)realloc(d->Buffer, sizeof(char) * newSize);
+ if (newBuffer == NULL)
+ return false;
+ d->Buffer = newBuffer;
d->Size = newSize;
- delete [] d->Buffer;
- d->Buffer = tmp;
// update the start/end pointers to the new buffer
d->Start = d->Buffer;