Skip to content

Commit ce6dda8

Browse files
committed
Add p->has_name
1 parent d9909f9 commit ce6dda8

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

flash/partition_info/partition_info.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ typedef struct {
4444
uint32_t last_sector;
4545
uint32_t flags_and_permissions;
4646
uint64_t partition_id;
47+
bool has_name;
4748
char name[PARTITION_NAME_MAX + 1]; // name length is indicated by 7 bits
4849
uint32_t extra_family_id_count;
4950
uint32_t extra_family_ids[PARTITION_EXTRA_FAMILY_ID_MAX];
@@ -107,7 +108,8 @@ bool read_next_partition(pico_partition_table_t *pt, pico_partition_t *p) {
107108

108109
p->extra_family_id_count = (p->flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_NUM_EXTRA_FAMILIES_BITS)
109110
>> PICOBIN_PARTITION_FLAGS_ACCEPTS_NUM_EXTRA_FAMILIES_LSB;
110-
if (p->extra_family_id_count | (p->flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS)) {
111+
p->has_name = p->flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS;
112+
if (p->extra_family_id_count | p->has_name) {
111113
// Read variable length fields
112114
uint32_t extra_family_id_and_name[PARTITION_EXTRA_FAMILY_ID_MAX + (((PARTITION_NAME_MAX + 1) / sizeof(uint32_t)) + 1)];
113115
uint32_t flags = PT_INFO_SINGLE_PARTITION | PT_INFO_PARTITION_FAMILY_IDS | PT_INFO_PARTITION_NAME;
@@ -124,14 +126,14 @@ bool read_next_partition(pico_partition_table_t *pt, pico_partition_t *p) {
124126
p->extra_family_ids[i] = extra_family_id_and_name[pos];
125127
}
126128

127-
if (p->flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS) {
129+
if (p->has_name) {
128130
uint8_t *name_buf = (uint8_t *)&extra_family_id_and_name[pos];
129131
uint8_t name_length = *name_buf++ & 0x7F;
130132
memcpy(p->name, name_buf, name_length);
131133
p->name[name_length] = '\0';
132134
}
133135
}
134-
if (!(p->flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS))
136+
if (!(p->has_name))
135137
p->name[0] = '\0';
136138

137139
pt->current_partition++;

0 commit comments

Comments
 (0)