summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2014-03-06 01:31:55 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2014-03-13 13:58:45 +0100
commit500dc0700136092692d1cceba4e5c1639bcfc825 (patch)
tree259834e8492eea23680ab7766a99b1daba5b0c99
parenta02db58fd50ef7fc2f0284852c6b3f98e458a232 (diff)
use SPtrArray handling instead of explicit delete[]
The warning message from gcc doesn't make that much sense in my reading as there is no loop which could overflow here, but it is better to use our SPtrArray wrapping anyway which fixes the warning as well. warning: cannot optimize loop, the loop counter may overflow [-Wunsafe-loop-optimizations] delete[] Dsc; Git-Dch: Ignore Reported-By: gcc -Wunsafe-loop-optimizations
-rw-r--r--cmdline/apt-get.cc11
1 files changed, 1 insertions, 10 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index a830c2387..caf69da2a 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -741,7 +741,7 @@ static bool DoSource(CommandLine &CmdL)
pkgAcquire Fetcher;
Fetcher.SetLog(&Stat);
- DscFile *Dsc = new DscFile[CmdL.FileSize()];
+ SPtrArray<DscFile> Dsc = new DscFile[CmdL.FileSize()];
// insert all downloaded uris into this set to avoid downloading them
// twice
@@ -762,7 +762,6 @@ static bool DoSource(CommandLine &CmdL)
pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,Cache);
if (Last == 0) {
- delete[] Dsc;
return _error->Error(_("Unable to find a source package for %s"),Src.c_str());
}
@@ -796,7 +795,6 @@ static bool DoSource(CommandLine &CmdL)
// Back track
vector<pkgSrcRecords::File> Lst;
if (Last->Files(Lst) == false) {
- delete[] Dsc;
return false;
}
@@ -859,7 +857,6 @@ static bool DoSource(CommandLine &CmdL)
struct statvfs Buf;
string OutputDir = ".";
if (statvfs(OutputDir.c_str(),&Buf) != 0) {
- delete[] Dsc;
if (errno == EOVERFLOW)
return _error->WarningE("statvfs",_("Couldn't determine free space in %s"),
OutputDir.c_str());
@@ -874,7 +871,6 @@ static bool DoSource(CommandLine &CmdL)
|| unsigned(Stat.f_type) != RAMFS_MAGIC
#endif
) {
- delete[] Dsc;
return _error->Error(_("You don't have enough free space in %s"),
OutputDir.c_str());
}
@@ -896,7 +892,6 @@ static bool DoSource(CommandLine &CmdL)
{
for (unsigned I = 0; I != J; I++)
ioprintf(cout,_("Fetch source %s\n"),Dsc[I].Package.c_str());
- delete[] Dsc;
return true;
}
@@ -907,7 +902,6 @@ static bool DoSource(CommandLine &CmdL)
for (; I != Fetcher.UriEnd(); ++I)
cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' <<
I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
- delete[] Dsc;
return true;
}
@@ -915,14 +909,12 @@ static bool DoSource(CommandLine &CmdL)
bool Failed = false;
if (AcquireRun(Fetcher, 0, &Failed, NULL) == false || Failed == true)
{
- delete[] Dsc;
return _error->Error(_("Failed to fetch some archives."));
}
if (_config->FindB("APT::Get::Download-only",false) == true)
{
c1out << _("Download complete and in download only mode") << endl;
- delete[] Dsc;
return true;
}
@@ -996,7 +988,6 @@ static bool DoSource(CommandLine &CmdL)
_exit(0);
}
- delete[] Dsc;
// Wait for the subprocess
int Status = 0;