summaryrefslogtreecommitdiff
path: root/apt-pkg/indexcopy.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-05-11 15:08:08 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-05-11 17:22:33 +0200
commit88593886a42025d51d76051da5929b044e42efee (patch)
tree6212ec08e3ac872573ca5faefb400a7914051bee /apt-pkg/indexcopy.h
parent8d058ea53b18348f81229049a27d14282bd8d8c1 (diff)
rewrite all TFRewrite instances to use the new pkgTagSection::Write
While it is mostly busywork to rewrite all instances it actually fixes bugs as the data storage used by the new method is std::string rather than a char*, the later mostly created by c_str() from a std::string which the caller has to ensure keeps in scope – something apt-ftparchive actually didn't ensure and relied on copy-on-write behavior instead which c++11 forbids and hence the new default gcc abi doesn't use it.
Diffstat (limited to 'apt-pkg/indexcopy.h')
-rw-r--r--apt-pkg/indexcopy.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h
index 701beb075..729b0c8cb 100644
--- a/apt-pkg/indexcopy.h
+++ b/apt-pkg/indexcopy.h
@@ -28,6 +28,7 @@ using std::vector;
class pkgTagSection;
class indexRecords;
class pkgCdromStatus;
+class FileFd;
class IndexCopy /*{{{*/
{
@@ -45,7 +46,7 @@ class IndexCopy /*{{{*/
void ConvertToSourceList(std::string CD,std::string &Path);
bool GrabFirst(std::string Path,std::string &To,unsigned int Depth);
virtual bool GetFile(std::string &Filename,unsigned long long &Size) = 0;
- virtual bool RewriteEntry(FILE *Target,std::string File) = 0;
+ virtual bool RewriteEntry(FileFd &Target, std::string const &File) = 0;
virtual const char *GetFileName() = 0;
virtual const char *Type() = 0;
@@ -61,7 +62,7 @@ class PackageCopy : public IndexCopy /*{{{*/
protected:
virtual bool GetFile(std::string &Filename,unsigned long long &Size);
- virtual bool RewriteEntry(FILE *Target,std::string File);
+ virtual bool RewriteEntry(FileFd &Target, std::string const &File);
virtual const char *GetFileName() {return "Packages";};
virtual const char *Type() {return "Package";};
@@ -72,7 +73,7 @@ class SourceCopy : public IndexCopy /*{{{*/
protected:
virtual bool GetFile(std::string &Filename,unsigned long long &Size);
- virtual bool RewriteEntry(FILE *Target,std::string File);
+ virtual bool RewriteEntry(FileFd &Target, std::string const &File);
virtual const char *GetFileName() {return "Sources";};
virtual const char *Type() {return "Source";};