packagefs: Remove PackageDataV1 from PackageData.

Now that we never access V1 packages in here, we don't need this.
This saves *24* bytes off the size of the class, which is
extremely significant as not only every PackageFile instance
has an instance of this class, but every PackageNode does too;
so the savings from this change is probably in the MB.
This commit is contained in:
Augustin Cavalier
2019-07-08 23:29:40 -04:00
parent ed9a502a9a
commit 71e255cd31
@@ -7,35 +7,27 @@
#include <package/hpkg/PackageData.h> #include <package/hpkg/PackageData.h>
#include <package/hpkg/v1/PackageData.h>
#include <string.h> #include <string.h>
typedef BPackageKit::BHPKG::BPackageData PackageDataV2; typedef BPackageKit::BHPKG::BPackageData PackageDataV2;
typedef BPackageKit::BHPKG::V1::BPackageData PackageDataV1;
class PackageData { class PackageData {
public: public:
explicit PackageData(const PackageDataV1& data);
explicit PackageData(const PackageDataV2& data); explicit PackageData(const PackageDataV2& data);
uint8 Version() const { return fVersion; } uint8 Version() const { return fVersion; }
const PackageDataV1& DataV1() const;
const PackageDataV2& DataV2() const; const PackageDataV2& DataV2() const;
uint64 CompressedSize() const;
uint64 UncompressedSize() const; uint64 UncompressedSize() const;
bool IsEncodedInline() const; bool IsEncodedInline() const;
const uint8* InlineData() const; const uint8* InlineData() const;
private: private:
static const size_t kDataSize = sizeof(PackageDataV1) static const size_t kDataSize = sizeof(PackageDataV2);
> sizeof(PackageDataV2)
? sizeof(PackageDataV1)
: sizeof(PackageDataV2);
private: private:
union { union {
@@ -46,15 +38,6 @@ private:
}; };
inline
PackageData::PackageData(const PackageDataV1& data)
:
fVersion(1)
{
memcpy(&fData, &data, sizeof(data));
}
inline inline
PackageData::PackageData(const PackageDataV2& data) PackageData::PackageData(const PackageDataV2& data)
: :
@@ -64,13 +47,6 @@ PackageData::PackageData(const PackageDataV2& data)
} }
inline const PackageDataV1&
PackageData::DataV1() const
{
return *(PackageDataV1*)&fData;
}
inline const PackageDataV2& inline const PackageDataV2&
PackageData::DataV2() const PackageData::DataV2() const
{ {
@@ -78,20 +54,9 @@ PackageData::DataV2() const
} }
inline uint64
PackageData::CompressedSize() const
{
if (fVersion == 1)
return DataV1().CompressedSize();
return DataV2().Size();
}
inline uint64 inline uint64
PackageData::UncompressedSize() const PackageData::UncompressedSize() const
{ {
if (fVersion == 1)
return DataV1().UncompressedSize();
return DataV2().Size(); return DataV2().Size();
} }
@@ -99,8 +64,6 @@ PackageData::UncompressedSize() const
inline bool inline bool
PackageData::IsEncodedInline() const PackageData::IsEncodedInline() const
{ {
if (fVersion == 1)
return DataV1().IsEncodedInline();
return DataV2().IsEncodedInline(); return DataV2().IsEncodedInline();
} }
@@ -108,8 +71,6 @@ PackageData::IsEncodedInline() const
inline const uint8* inline const uint8*
PackageData::InlineData() const PackageData::InlineData() const
{ {
if (fVersion == 1)
return DataV1().InlineData();
return DataV2().InlineData(); return DataV2().InlineData();
} }