[devel] [PATCH for apt v2 01/21] Replace post-increments with pre-increments
Aleksei Nikiforov
darktemplar на altlinux.org
Пт Дек 13 11:29:09 MSK 2019
13.12.2019 0:32, Andrey Savchenko пишет:
> On Thu, 12 Dec 2019 12:57:10 +0300 Aleksei Nikiforov wrote:
>> Found via cppcheck:
>> (performance) Prefer prefix ++/-- operators for non-primitive types.
> [...]
>> diff --git a/apt/cmdline/apt-get.cc b/apt/cmdline/apt-get.cc
>> index a26c93c..3858752 100644
>> --- a/apt/cmdline/apt-get.cc
>> +++ b/apt/cmdline/apt-get.cc
>> @@ -541,8 +541,7 @@ bool DownloadPackages(vector<string> &URLLst)
>> pkgAcquire Fetcher(&Stat);
>>
>> // Load the requestd sources into the fetcher
>> - vector<string>::const_iterator I = URLLst.begin();
>> - for (; I != URLLst.end(); I++)
>> + for (auto I = URLLst.begin(); I != URLLst.end(); ++I)
>> new pkgAcqFile(&Fetcher,*I,"",0,*I,flNotDir(*I));
>
> This one contains the unrelated change for the iterator
> initialization. If you really need this cosmetics, submit it as a
> separate patch.
>
>> @@ -551,7 +550,7 @@ bool DownloadPackages(vector<string> &URLLst)
>>
>> // Print error messages
>> bool Failed = false;
>> - for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++)
>> + for (auto I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
>
> Same here.
>
>> @@ -1721,8 +1720,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
>> return false;
>>
>> // Install everything with the install flag set
>> - pkgCache::PkgIterator I = Cache->PkgBegin();
>> - for (;I.end() != true; I++)
>> + for (auto I = Cache->PkgBegin(); not I.end(); ++I)
>
> And here.
>
>> @@ -1732,7 +1730,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
>>
>> /* Now install their deps too, if we do this above then order of
>> the status file is significant for | groups */
>> - for (I = Cache->PkgBegin();I.end() != true; I++)
>> + for (auto I = Cache->PkgBegin(); not I.end(); ++I)
>
> And here.
>
>> {
>> /* Install the package only if it is a new install, the autoupgrader
>> will deal with the rest */
>> @@ -1741,7 +1739,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
>> }
>>
>> // Apply erasures now, they override everything else.
>> - for (I = Cache->PkgBegin();I.end() != true; I++)
>> + for (auto I = Cache->PkgBegin(); not I.end(); ++I)
>
> And here.
>
>> @@ -1758,7 +1756,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
>> // Hold back held packages.
>> if (_config->FindB("APT::Ignore-Hold",false) == false)
>> {
>> - for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; I++)
>> + for (auto I = Cache->PkgBegin(); not I.end(); ++I)
>
> And here.
>
>> diff --git a/apt/cmdline/apt-shell.cc b/apt/cmdline/apt-shell.cc
>> index 9582291..0aa5da5 100644
>> --- a/apt/cmdline/apt-shell.cc
>> +++ b/apt/cmdline/apt-shell.cc
>> @@ -3034,7 +3034,7 @@ bool DoList(CommandLine &CmdL)
>> string status = "available";
>> if (Pkg->CurrentVer != 0) status = "installed";
>> if (Pkg->CurrentVer != 0)
>> - for (pkgCache::DepIterator D = Pkg.RevDependsList(); D.end() == false; D++)
>> + for (pkgCache::DepIterator D = Pkg.RevDependsList(); not D.end(); ++D)
>
> Same here. Though this D.end() related change looks as an absolutely
> useless cosmetics.
>
>> diff --git a/apt/methods/http.cc b/apt/methods/http.cc
>> index dcdd651..da3e646 100644
>> --- a/apt/methods/http.cc
>> +++ b/apt/methods/http.cc
>> @@ -383,10 +383,10 @@ int ServerState::RunHeaders()
>> if (Debug == true)
>> clog << Data;
>>
>> - for (string::const_iterator I = Data.begin(); I < Data.end(); I++)
>> + for (string::const_iterator I = Data.begin(); I != Data.end(); ++I)
>
> This is the correct change. But yet again it is unrelated to the
> patch description, please submit Data.end() fix as a separate patch.
>
> Other changes LGTM. They may improve performance (and may not
> depending on how smart a compiler is), but are harmless otherwise.
>
Thanks, I'll review this patch once more.
A note: if compiler is smart, it takes time to do these heuristics, and
thus this change would improve compile time in that case. Otherwise,
this change may improve runtime performance.
> Best regards,
> Andrew Savchenko
>
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
>
Подробная информация о списке рассылки Devel