diff options
author | Julian Andres Klode <jak@debian.org> | 2020-02-25 17:12:50 +0000 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2020-02-25 17:12:50 +0000 |
commit | 5dd61ec04ca6b4ccbde1f94ff5f55299ba7fd1fb (patch) | |
tree | 5172f2f839fcf21297a3c98a422189237b82de44 /apt-pkg/pkgcachegen.h | |
parent | c8821bb424e2324a36896dcccaef573c938c5b0e (diff) | |
parent | d8c6ea90784ecb4dabbf8c2cb7b631add50ae177 (diff) |
Merge branch 'pu/typesafe-cache2' into 'master'
Type-safe cache / map_pointer
See merge request apt-team/apt!105
Diffstat (limited to 'apt-pkg/pkgcachegen.h')
-rw-r--r-- | apt-pkg/pkgcachegen.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index 70192c28e..f5b4c80b3 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -40,7 +40,10 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ APT_HIDDEN map_stringitem_t WriteStringInMap(APT::StringView String) { return WriteStringInMap(String.data(), String.size()); }; APT_HIDDEN map_stringitem_t WriteStringInMap(const char *String); APT_HIDDEN map_stringitem_t WriteStringInMap(const char *String, const unsigned long &Len); - APT_HIDDEN map_pointer_t AllocateInMap(const unsigned long &size); + APT_HIDDEN uint32_t AllocateInMap(const unsigned long &size); + template<typename T> map_pointer<T> AllocateInMap() { + return map_pointer<T>{AllocateInMap(sizeof(T))}; + } // Dirty hack for public users that do not use C++11 yet #if __cplusplus >= 201103L @@ -108,15 +111,15 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ bool NewGroup(pkgCache::GrpIterator &Grp, APT::StringView Name); bool NewPackage(pkgCache::PkgIterator &Pkg, APT::StringView Name, APT::StringView Arch); - map_pointer_t NewVersion(pkgCache::VerIterator &Ver, APT::StringView const &VerStr, - map_pointer_t const ParentPkg, uint32_t Hash, - map_pointer_t const Next); - map_pointer_t NewDescription(pkgCache::DescIterator &Desc,const std::string &Lang, APT::StringView md5sum,map_stringitem_t const idxmd5str); + map_pointer<pkgCache::Version> NewVersion(pkgCache::VerIterator &Ver, APT::StringView const &VerStr, + map_pointer<pkgCache::Package> const ParentPkg, uint32_t Hash, + map_pointer<pkgCache::Version> const Next); + map_pointer<pkgCache::Description> NewDescription(pkgCache::DescIterator &Desc,const std::string &Lang, APT::StringView md5sum,map_stringitem_t const idxmd5str); bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List); bool NewFileDesc(pkgCache::DescIterator &Desc,ListParser &List); bool NewDepends(pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver, - map_pointer_t const Version, uint8_t const Op, - uint8_t const Type, map_pointer_t* &OldDepLast); + map_stringitem_t const Version, uint8_t const Op, + uint8_t const Type, map_pointer<pkgCache::Dependency>* &OldDepLast); bool NewProvides(pkgCache::VerIterator &Ver, pkgCache::PkgIterator &Pkg, map_stringitem_t const ProvidesVersion, uint8_t const Flags); @@ -172,7 +175,7 @@ class APT_HIDDEN pkgCacheListParser // Some cache items pkgCache::VerIterator OldDepVer; - map_pointer_t *OldDepLast; + map_pointer<pkgCache::Dependency> *OldDepLast; void * const d; |