summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-05-09 15:37:23 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-05-11 17:22:32 +0200
commitd38926efe1e6d2511bd852607ff4f9c8b60dc76c (patch)
tree024143d78e60cc7a846e254ff512ae16a15bd0b8 /apt-pkg
parente8fb1cdfdd13e45f2b3abbd57a28b57ae6137f14 (diff)
stop depending on copy-on-write for std::string
In 66c3875df391b1120b43831efcbe88a78569fbfe we workaround/fixed a problem where the code makes the assumption that the compiler uses copy-on-write implementations for std::string. Turns out that for c++11 compatibility gcc >= 5 will stop doing this by default.
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/deb/debindexfile.cc24
-rw-r--r--apt-pkg/deb/debindexfile.h18
2 files changed, 21 insertions, 21 deletions
diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc
index 49c6e8cc0..d672b4fd8 100644
--- a/apt-pkg/deb/debindexfile.cc
+++ b/apt-pkg/deb/debindexfile.cc
@@ -413,8 +413,8 @@ pkgCache::PkgFileIterator debPackagesIndex::FindInCache(pkgCache &Cache) const
// TranslationsIndex::debTranslationsIndex - Contructor /*{{{*/
// ---------------------------------------------------------------------
/* */
-debTranslationsIndex::debTranslationsIndex(string URI,string Dist,string Section,
- char const * const Translation) :
+debTranslationsIndex::debTranslationsIndex(std::string const &URI, std::string const &Dist,
+ std::string const &Section, std::string const &Translation) :
pkgIndexFile(true), URI(URI), Dist(Dist), Section(Section),
Language(Translation)
{}
@@ -458,13 +458,13 @@ string debTranslationsIndex::IndexURI(const char *Type) const
/* This should help the user find the index in the sources.list and
in the filesystem for problem solving */
string debTranslationsIndex::Describe(bool Short) const
-{
- char S[300];
+{
+ std::string S;
if (Short == true)
- snprintf(S,sizeof(S),"%s",Info(TranslationFile().c_str()).c_str());
+ strprintf(S,"%s",Info(TranslationFile().c_str()).c_str());
else
- snprintf(S,sizeof(S),"%s (%s)",Info(TranslationFile().c_str()).c_str(),
- IndexFile(Language).c_str());
+ strprintf(S,"%s (%s)",Info(TranslationFile().c_str()).c_str(),
+ IndexFile(Language.c_str()).c_str());
return S;
}
/*}}}*/
@@ -488,7 +488,7 @@ string debTranslationsIndex::Info(const char *Type) const
/*}}}*/
bool debTranslationsIndex::HasPackages() const /*{{{*/
{
- return FileExists(IndexFile(Language));
+ return FileExists(IndexFile(Language.c_str()));
}
/*}}}*/
// TranslationsIndex::Exists - Check if the index is available /*{{{*/
@@ -496,7 +496,7 @@ bool debTranslationsIndex::HasPackages() const /*{{{*/
/* */
bool debTranslationsIndex::Exists() const
{
- return FileExists(IndexFile(Language));
+ return FileExists(IndexFile(Language.c_str()));
}
/*}}}*/
// TranslationsIndex::Size - Return the size of the index /*{{{*/
@@ -509,7 +509,7 @@ unsigned long debTranslationsIndex::Size() const
/* we need to ignore errors here; if the lists are absent, just return 0 */
_error->PushToStack();
- FileFd f(IndexFile(Language), FileFd::ReadOnly, FileFd::Extension);
+ FileFd f(IndexFile(Language.c_str()), FileFd::ReadOnly, FileFd::Extension);
if (!f.Failed())
size = f.Size();
@@ -526,7 +526,7 @@ unsigned long debTranslationsIndex::Size() const
bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
{
// Check the translation file, if in use
- string TranslationFile = IndexFile(Language);
+ string TranslationFile = IndexFile(Language.c_str());
if (FileExists(TranslationFile))
{
FileFd Trans(TranslationFile,FileFd::ReadOnly, FileFd::Extension);
@@ -556,7 +556,7 @@ bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
/* */
pkgCache::PkgFileIterator debTranslationsIndex::FindInCache(pkgCache &Cache) const
{
- string FileName = IndexFile(Language);
+ string FileName = IndexFile(Language.c_str());
pkgCache::PkgFileIterator File = Cache.FileBegin();
for (; File.end() == false; ++File)
diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h
index 81914f203..1e5882071 100644
--- a/apt-pkg/deb/debindexfile.h
+++ b/apt-pkg/deb/debindexfile.h
@@ -97,11 +97,11 @@ class APT_HIDDEN debTranslationsIndex : public pkgIndexFile
/** \brief dpointer placeholder (for later in case we need it) */
void *d;
- std::string URI;
- std::string Dist;
- std::string Section;
- const char * const Language;
-
+ std::string const URI;
+ std::string const Dist;
+ std::string const Section;
+ std::string const Language;
+
APT_HIDDEN std::string Info(const char *Type) const;
APT_HIDDEN std::string IndexFile(const char *Type) const;
APT_HIDDEN std::string IndexURI(const char *Type) const;
@@ -109,12 +109,12 @@ class APT_HIDDEN debTranslationsIndex : public pkgIndexFile
APT_HIDDEN std::string TranslationFile() const {return std::string("Translation-").append(Language);};
public:
-
+
virtual const Type *GetType() const APT_CONST;
// Interface for acquire
- virtual std::string Describe(bool Short) const;
-
+ virtual std::string Describe(bool Short) const;
+
// Interface for the Cache Generator
virtual bool Exists() const;
virtual bool HasPackages() const;
@@ -122,7 +122,7 @@ class APT_HIDDEN debTranslationsIndex : public pkgIndexFile
virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const;
virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
- debTranslationsIndex(std::string URI,std::string Dist,std::string Section, char const * const Language);
+ debTranslationsIndex(std::string const &URI,std::string const &Dist,std::string const &Section, std::string const &Language);
virtual ~debTranslationsIndex();
};