From 55d6c9551e13b108947410d7bf50b6ba2c01b633 Mon Sep 17 00:00:00 2001 From: Benjamin Dobell Date: Sun, 5 May 2013 20:53:36 +1000 Subject: Fixed two major bugs in libpit related functionality: - Partitions were being excluded from flashing (and UI) if the block-count was zero. Instead this is now done using a new IsFlashable() method which checks if the partition name is not blank. - PitData::Pack() was packing the partition name where it should have been packing the "flash filename". This resulted in incorrect PIT files being flashed to the device. --- libpit/Source/libpit.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'libpit/Source/libpit.cpp') diff --git a/libpit/Source/libpit.cpp b/libpit/Source/libpit.cpp index a1138b5..1f29816 100644 --- a/libpit/Source/libpit.cpp +++ b/libpit/Source/libpit.cpp @@ -193,7 +193,7 @@ void PitData::Pack(unsigned char *data) const PitData::PackInteger(data, entryOffset + 32, entries[i]->GetFileSize()); memcpy(data + entryOffset + 36, entries[i]->GetPartitionName(), PitEntry::kPartitionNameMaxLength); - memcpy(data + entryOffset + 36 + PitEntry::kPartitionNameMaxLength, entries[i]->GetPartitionName(), PitEntry::kFlashFilenameMaxLength); + memcpy(data + entryOffset + 36 + PitEntry::kPartitionNameMaxLength, entries[i]->GetFlashFilename(), PitEntry::kFlashFilenameMaxLength); memcpy(data + entryOffset + 36 + PitEntry::kPartitionNameMaxLength + PitEntry::kFlashFilenameMaxLength, entries[i]->GetFotaFilename(), PitEntry::kFotaFilenameMaxLength); } @@ -255,7 +255,7 @@ PitEntry *PitData::FindEntry(const char *partitionName) { for (unsigned int i = 0; i < entries.size(); i++) { - if (entries[i]->GetBlockCount() > 0 && strcmp(entries[i]->GetPartitionName(), partitionName) == 0) + if (entries[i]->IsFlashable() && strcmp(entries[i]->GetPartitionName(), partitionName) == 0) return (entries[i]); } @@ -266,7 +266,7 @@ const PitEntry *PitData::FindEntry(const char *partitionName) const { for (unsigned int i = 0; i < entries.size(); i++) { - if (entries[i]->GetBlockCount() > 0 && strcmp(entries[i]->GetPartitionName(), partitionName) == 0) + if (entries[i]->IsFlashable() && strcmp(entries[i]->GetPartitionName(), partitionName) == 0) return (entries[i]); } @@ -277,7 +277,7 @@ PitEntry *PitData::FindEntry(unsigned int partitionIdentifier) { for (unsigned int i = 0; i < entries.size(); i++) { - if (entries[i]->GetBlockCount() > 0 && entries[i]->GetIdentifier() == partitionIdentifier) + if (entries[i]->IsFlashable() && entries[i]->GetIdentifier() == partitionIdentifier) return (entries[i]); } @@ -288,7 +288,7 @@ const PitEntry *PitData::FindEntry(unsigned int partitionIdentifier) const { for (unsigned int i = 0; i < entries.size(); i++) { - if (entries[i]->GetBlockCount() > 0 && entries[i]->GetIdentifier() == partitionIdentifier) + if (entries[i]->IsFlashable() && entries[i]->GetIdentifier() == partitionIdentifier) return (entries[i]); } -- cgit v1.1 From 07dcba54fc8cc5b7c6515305aa233e24a58adc94 Mon Sep 17 00:00:00 2001 From: Benjamin Dobell Date: Mon, 13 May 2013 00:08:30 +1000 Subject: Update copyright notices, version identifier and documentation for 1.4.0 release. --- libpit/Source/libpit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libpit/Source/libpit.cpp') diff --git a/libpit/Source/libpit.cpp b/libpit/Source/libpit.cpp index 1f29816..f9e8467 100644 --- a/libpit/Source/libpit.cpp +++ b/libpit/Source/libpit.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2012 Benjamin Dobell, Glass Echidna +/* Copyright (c) 2010-2013 Benjamin Dobell, Glass Echidna Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit v1.1