diff options
author | David Kalnischkies <david@kalnischkies.de> | 2014-01-29 23:24:41 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2014-01-30 00:16:20 +0100 |
commit | 6a9c9d63edc878ff268cdaa4f985ca50c48380b0 (patch) | |
tree | cf4f6c357c50e386b1824dd155ef3edbff4f188c /apt-pkg/deb/debsrcrecords.h | |
parent | e62aa1dd8099aeb8bb667253ca22c56b93f521d1 (diff) |
restart debSrcRecordParsers only if needed
The offset variable in DebSrcRecordParser was not initialized which we
now do and based on it do not trigger a restart if the parser was not
used yet avoiding a needless rescan of the section.
Detected while working on the previous commit e62aa1dd. Both commits act
as a "fix" for the bug shown in the testcase of the commit – this one
here would only hide it through.
Diffstat (limited to 'apt-pkg/deb/debsrcrecords.h')
-rw-r--r-- | apt-pkg/deb/debsrcrecords.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/apt-pkg/deb/debsrcrecords.h b/apt-pkg/deb/debsrcrecords.h index 5d2a67f4f..a8fb465bb 100644 --- a/apt-pkg/deb/debsrcrecords.h +++ b/apt-pkg/deb/debsrcrecords.h @@ -30,7 +30,7 @@ class debSrcRecordParser : public pkgSrcRecords::Parser public: - virtual bool Restart() {return Tags.Jump(Sect,0);}; + virtual bool Restart() {return Jump(0);}; virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);}; virtual bool Jump(unsigned long const &Off) {iOffset = Off; return Tags.Jump(Sect,Off);}; @@ -50,8 +50,8 @@ class debSrcRecordParser : public pkgSrcRecords::Parser virtual bool Files(std::vector<pkgSrcRecords::File> &F); debSrcRecordParser(std::string const &File,pkgIndexFile const *Index) - : Parser(Index), Fd(File,FileFd::ReadOnly, FileFd::Extension), Tags(&Fd,102400), - Buffer(NULL) {} + : Parser(Index), Fd(File,FileFd::ReadOnly, FileFd::Extension), Tags(&Fd,102400), + iOffset(0), Buffer(NULL) {} virtual ~debSrcRecordParser(); }; |