repository writer: fix use of incorrect header size

The header size of the package file header was used, which resulted in
broken repository files.
This commit is contained in:
Ingo Weinhold
2013-07-04 16:37:24 +02:00
parent 32086850f7
commit 695a1b248a
4 changed files with 8 additions and 6 deletions
@@ -100,7 +100,7 @@ protected:
typedef DoublyLinkedList<PackageAttribute> PackageAttributeList; typedef DoublyLinkedList<PackageAttribute> PackageAttributeList;
protected: protected:
status_t Init(const char* fileName, status_t Init(const char* fileName, size_t headerSize,
const BPackageWriterParameters& parameters); const BPackageWriterParameters& parameters);
void RegisterPackageInfo( void RegisterPackageInfo(
+2 -1
View File
@@ -606,7 +606,8 @@ status_t
PackageWriterImpl::_Init(const char* fileName, PackageWriterImpl::_Init(const char* fileName,
const BPackageWriterParameters& parameters) const BPackageWriterParameters& parameters)
{ {
status_t result = inherited::Init(fileName, parameters); status_t result = inherited::Init(fileName, sizeof(hpkg_header),
parameters);
if (result != B_OK) if (result != B_OK)
return result; return result;
@@ -250,7 +250,8 @@ RepositoryWriterImpl::Finish()
status_t status_t
RepositoryWriterImpl::_Init(const char* fileName) RepositoryWriterImpl::_Init(const char* fileName)
{ {
return inherited::Init(fileName, BPackageWriterParameters()); return inherited::Init(fileName, sizeof(hpkg_repo_header),
BPackageWriterParameters());
} }
+3 -3
View File
@@ -243,7 +243,7 @@ WriterImplBase::~WriterImplBase()
status_t status_t
WriterImplBase::Init(const char* fileName, WriterImplBase::Init(const char* fileName, size_t headerSize,
const BPackageWriterParameters& parameters) const BPackageWriterParameters& parameters)
{ {
fParameters = parameters; fParameters = parameters;
@@ -266,8 +266,8 @@ WriterImplBase::Init(const char* fileName,
fFileName = fileName; fFileName = fileName;
// create heap writer // create heap writer
fHeapWriter = new PackageFileHeapWriter(fErrorOutput, FD(), fHeapWriter = new PackageFileHeapWriter(fErrorOutput, FD(), headerSize,
sizeof(hpkg_header), fParameters.CompressionLevel()); fParameters.CompressionLevel());
fHeapWriter->Init(); fHeapWriter->Init();
fDataWriter = fHeapWriter->DataWriter(); fDataWriter = fHeapWriter->DataWriter();