improve free slot hover info

This commit is contained in:
silverweed 2025-01-22 14:32:22 +01:00
parent 84a9266f4b
commit 7577457b21

View file

@ -340,9 +340,11 @@ struct Sec_Hover_Fn {
return was_zipped;
}
void tkey(const char *title = "TKey")
// Returns the key len
u16 tkey(const char *title = "TKey")
{
titled_section(title, [this] {
u16 keylen = 0;
titled_section(title, [this, &keylen] {
u16 version_be;
if (!read(&version_be, cur_field_off + 4))
return;
@ -350,7 +352,10 @@ struct Sec_Hover_Fn {
u32 version = bswap(version_be);
b8 is_big = version > 1000;
field_be<u32>("NBytes: %u");
field<i32>("NBytes: %d", [] (Arena *arena, String8_Node *prev, const char *fmt, i32 x) {
x = bswap(x);
return push_str8_node_child(arena, prev, fmt, abs(x));
});
field<u16>("Version: %u", [] (Arena *arena, String8_Node *prev, const char *fmt, u16 x) {
x = bswap(x);
x -= (x > 1000) * 1000;
@ -358,7 +363,7 @@ struct Sec_Hover_Fn {
});
field_be<u32>("Obj Len: %u");
field<u32>("Datetime: ", hover_display_datetime_str);
field_be<u16>("Key Len: %u");
field_be<u16>("Key Len: %u", &keylen);
field_be<u16>("Cycle: %u");
if (is_big) {
field_be<u64>("Seek Key: 0x%" PRIX64);
@ -371,6 +376,8 @@ struct Sec_Hover_Fn {
field_str8<u8>("Obj Name: %s");
field_str8<u8>("Obj Title: %s");
}, HoverSec_HideIfNotHovered);
return keylen;
}
void envelope_preamble()
@ -1073,7 +1080,8 @@ struct Sec_Hover_Fn {
void free_slot()
{
titled_section("Free Slot", [this] {
range("Freed Data", section.range.len);
u32 keylen = tkey();
range("Freed Data", section.range.len - section.post_size - keylen);
});
}
};