[haiku-commits] Re: haiku: hrev49454 - src/add-ons/kernel/partitioning_systems/gpt build/jam/images/definitions

  • From: Paweł Dziepak <pdziepak@xxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 25 Jul 2015 16:32:21 +0200

On 25 July 2015 at 16:17, <waddlesplash@xxxxxxxxx> wrote:

hrev49454 adds 2 changesets to branch 'master'
old head: 5d8a237146df3b47ca64cf87d496aee696b6fb37
new head: 4a839f2daaeb237f0fb8c5192899c9e0993e762e
overview:
http://cgit.haiku-os.org/haiku/log/?qt=range&q=4a839f2daaeb+%5E5d8a237146df


----------------------------------------------------------------------------

e4b8ed4a85d9: images/regular: Delete DVB stuff.

Thanks to Axel for reviewing!

[ Augustin Cavalier <waddlesplash@xxxxxxxxx>
]

4a839f2daaeb: partitioning_systems/gpt: Fix _IsHeaderValid().

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>

[ Josef Gajdusek <atx@xxxxxxxxxx>
]


----------------------------------------------------------------------------

3 files changed, 11 insertions(+), 16 deletions(-)
build/jam/images/definitions/regular | 5 -----
.../kernel/partitioning_systems/gpt/Header.cpp | 18 +++++++++---------
.../kernel/partitioning_systems/gpt/Header.h | 4 ++--


############################################################################

Commit: e4b8ed4a85d964cfd0e3cf88075de476c9647650
URL: http://cgit.haiku-os.org/haiku/commit/?id=e4b8ed4a85d9
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Sat Jul 25 14:05:00 2015 UTC

images/regular: Delete DVB stuff.

Thanks to Axel for reviewing!


----------------------------------------------------------------------------

diff --git a/build/jam/images/definitions/regular
b/build/jam/images/definitions/regular
index e0eb538..0384d6b 100644
--- a/build/jam/images/definitions/regular
+++ b/build/jam/images/definitions/regular
@@ -255,11 +255,6 @@ AddDirectoryToHaikuImage home config settings
printers Preview
AddDirectoryToHaikuImage home config settings printers "Save as PDF"
: home-config-settings-printers-save-as-pdf.rdef ;

-# dvb channel settings
-#CopyDirectoryToHaikuImage home config settings Media
-# : [ FDirName $(HAIKU_TOP) data settings media dvb ]
-# : dvb : -x Jamfile ;
-
# repository config and cache files
local repository ;
for repository in $(HAIKU_REPOSITORIES) {


############################################################################

Revision: hrev49454
Commit: 4a839f2daaeb237f0fb8c5192899c9e0993e762e
URL: http://cgit.haiku-os.org/haiku/commit/?id=4a839f2daaeb
Author: Josef Gajdusek <atx@xxxxxxxxxx>
Date: Sat Jul 25 14:15:24 2015 UTC
Committer: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Commit-Date: Sat Jul 25 14:15:24 2015 UTC

partitioning_systems/gpt: Fix _IsHeaderValid().

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>


----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/partitioning_systems/gpt/Header.cpp
b/src/add-ons/kernel/partitioning_systems/gpt/Header.cpp
index e279c0c..6099445 100644
--- a/src/add-ons/kernel/partitioning_systems/gpt/Header.cpp
+++ b/src/add-ons/kernel/partitioning_systems/gpt/Header.cpp
@@ -290,24 +290,24 @@ Header::_Read(int fd, off_t offset, void* data,
size_t size) const


bool
-Header::_IsHeaderValid(const efi_table_header& header, uint64 block)
+Header::_IsHeaderValid(efi_table_header& header, uint64 block)


Validation functions modifying things they are supposed to validate doesn't
look like a good interface, header should stay a const reference.


{
- return !memcmp(fHeader.header, EFI_PARTITION_HEADER,
sizeof(fHeader.header))
- && _ValidateHeaderCRC()
- && fHeader.AbsoluteBlock() == block;
+ return !memcmp(header.header, EFI_PARTITION_HEADER,
sizeof(header.header))
+ && _ValidateHeaderCRC(header)
+ && header.AbsoluteBlock() == block;
}


bool
-Header::_ValidateHeaderCRC()
+Header::_ValidateHeaderCRC(efi_table_header& header)


There is a bit too many occurrences of word "header" in that line. Why do
we pass both an instance of Header and an instance of efi_table_header to
this function? The former isn't needed here.


{
- uint32 originalCRC = fHeader.HeaderCRC();
- fHeader.SetHeaderCRC(0);
+ uint32 originalCRC = header.HeaderCRC();
+ header.SetHeaderCRC(0);


Do that on a copy of efi_table_header so that the function can take const
reference as an argument. The header isn't very big and computing crc32
will dominate anyway (besides, this isn't kind of function that should be
called very often).



- bool matches = originalCRC == crc32((const uint8*)&fHeader,
+ bool matches = originalCRC == crc32((const uint8*)&header,
sizeof(efi_table_header));

- fHeader.SetHeaderCRC(originalCRC);
+ header.SetHeaderCRC(originalCRC);
return matches;
}

diff --git a/src/add-ons/kernel/partitioning_systems/gpt/Header.h
b/src/add-ons/kernel/partitioning_systems/gpt/Header.h
index f6781c6..7bc10a0 100644
--- a/src/add-ons/kernel/partitioning_systems/gpt/Header.h
+++ b/src/add-ons/kernel/partitioning_systems/gpt/Header.h
@@ -53,9 +53,9 @@ private:

status_t _Read(int fd,
off_t offset, void* data,

size_t size) const;
- bool
_IsHeaderValid(const efi_table_header& header,
+ bool
_IsHeaderValid(efi_table_header& header,

uint64 block);
- bool
_ValidateHeaderCRC();
+ bool
_ValidateHeaderCRC(efi_table_header& header);
bool
_ValidateEntriesCRC() const;
void
_SetBackupHeaderFromPrimary(uint64 lastBlock);
size_t _EntryArraySize()
const



Other related posts: