add tkey_list section
This commit is contained in:
parent
fe77a32306
commit
3dd6dd85a4
7 changed files with 24 additions and 2 deletions
5
Makefile
5
Makefile
|
@ -21,7 +21,7 @@ else
|
|||
MOLD = mold -run
|
||||
endif
|
||||
ROOT_IFACE = build/RMicroFileReader.o
|
||||
ROOT_IFACE_DBG = $(ROOT_IFACE)
|
||||
ROOT_IFACE_DBG = $(ROOT_IFACE).dbg
|
||||
|
||||
.PHONY: all clean
|
||||
all: build/imgui.o $(ROOT_IFACE) ubsan
|
||||
|
@ -36,6 +36,9 @@ build/imgui.o: src/imgui_inc.cpp
|
|||
$(ROOT_IFACE): src/root/RMicroFileReader.cxx
|
||||
$(CXX) -O3 -fPIC -c $(ROOTFLAGS) $< -o $@
|
||||
|
||||
$(ROOT_IFACE_DBG): src/root/RMicroFileReader.cxx
|
||||
$(CXX) -O0 -DDEBUG -g -fPIC -c $(ROOTFLAGS) $< -o $@
|
||||
|
||||
# debug build
|
||||
d: $(ROOT_IFACE_DBG) build/imgui.o
|
||||
$(MOLD) $(CXX) -DDEBUG -g -O0 -DENABLE_ASAN $(CFLAGS) $(INC) $(ROOTFLAGS) -o rntviewer src/rntviewer.cpp build/imgui.o -lasan $(ROOT_IFACE_DBG) $(LIBS) $(ROOTLIBS)
|
||||
|
|
|
@ -84,6 +84,8 @@ u32 mem_edit_bg_color_fn(const u8 *, u64 off, void *user_data)
|
|||
if (rdata.rng_footer.start <= off && off < rdata.rng_footer.end() - 8) return COL(app->viewer.col_footer);
|
||||
if (rdata.rng_footer.end() - 8 <= off && off < rdata.rng_footer.end()) return COL(app->viewer.col_checksum);
|
||||
|
||||
if (rdata.rng_tkeys_list.start <= off && off < rdata.rng_tkeys_list.end()) return COL(app->viewer.col_tkeys_list);
|
||||
|
||||
// @Speed
|
||||
for (u64 cg_idx = 0; cg_idx < rdata.n_cluster_groups; ++cg_idx) {
|
||||
Cluster_Group_Info &cg_info = rdata.cluster_groups[cg_idx];
|
||||
|
@ -155,6 +157,7 @@ void make_viewer(App_State &app)
|
|||
COL(col_page_start, 200, 0, 200);
|
||||
COL(col_checksum, 134, 65, 25);
|
||||
COL(col_page_list, 60, 110, 120);
|
||||
COL(col_tkeys_list, 100, 140, 100);
|
||||
COL(col_highlight, 190, 190, 190);
|
||||
#undef COL
|
||||
|
||||
|
@ -352,6 +355,11 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
|||
ImGui::SameLine();
|
||||
ImGui::Text("%s", to_pretty_size(scratch.arena, app.rndata.tot_page_list_size).c());
|
||||
|
||||
ImGui::ColorEdit3("_TKey List", app.viewer.col_tkeys_list, flags);
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("TKey List")) viewer_jump_to(app.viewer, app.rndata.rng_tkeys_list.start);
|
||||
|
||||
// -------------------------------
|
||||
ImGui::Separator();
|
||||
String8 root_version_str = push_str8f(scratch.arena, "%u.%u.%u",
|
||||
app.tfile_data.root_version_major,
|
||||
|
|
|
@ -13,6 +13,7 @@ struct Viewer {
|
|||
f32 col_page_start[3];
|
||||
f32 col_checksum[3];
|
||||
f32 col_page_list[3];
|
||||
f32 col_tkeys_list[3];
|
||||
f32 col_highlight[3];
|
||||
|
||||
u64 base_display_addr;
|
||||
|
|
|
@ -263,7 +263,7 @@ TFile_Data get_tfile_data(const Inspected_File &file)
|
|||
memcpy(&info_nbytes_be, file.mem + root_file_info.info_nbytes_seek, sizeof(info_nbytes_be));
|
||||
tfile_data.rng_root_file_info.len = bswap_32(info_nbytes_be);
|
||||
|
||||
// parse free
|
||||
// parse free list
|
||||
if (is_big_file) {
|
||||
u64 free_seek_be;
|
||||
memcpy(&free_seek_be, file.mem + root_file_info.free_seek_seek, sizeof(free_seek_be));
|
||||
|
@ -302,6 +302,8 @@ RNTuple_Data get_rntuple_data(Arena *arena, const Inspected_File &file, String8
|
|||
rndata.rng_anchor_key.start = file_info.anchor_key_seek;
|
||||
rndata.rng_anchor_key.len = file_info.anchor_key_nbytes;
|
||||
rndata.rblob_header_size = file_info.rblob_key_header_nbytes;
|
||||
rndata.rng_tkeys_list.start = file_info.tkeys_list_seek;
|
||||
rndata.rng_tkeys_list.len = file_info.tkeys_list_nbytes;
|
||||
|
||||
gather_ntuple_metadata(arena, file_reader, file_info, rndata);
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ struct RNTuple_Data {
|
|||
Byte_Range rng_anchor_key;
|
||||
Byte_Range rng_header;
|
||||
Byte_Range rng_footer;
|
||||
Byte_Range rng_tkeys_list;
|
||||
|
||||
Page_Info_Node *pages;
|
||||
u64 n_pages;
|
||||
|
|
|
@ -1151,6 +1151,10 @@ RMicroFileReader::GetNTupleProper(const char *ntupleName)
|
|||
offset = file.GetSeekKeys();
|
||||
ReadBuffer(&key, sizeof(key), offset);
|
||||
offset += key.fKeyLen;
|
||||
// @-------- begin
|
||||
fileInfo.tkeys_list_seek = file.GetSeekKeys();
|
||||
fileInfo.tkeys_list_nbytes = key.fKeyLen + sizeof(nKeys);
|
||||
// @-------- end
|
||||
ReadBuffer(&nKeys, sizeof(nKeys), offset);
|
||||
offset += sizeof(nKeys);
|
||||
bool found = false;
|
||||
|
@ -1161,6 +1165,7 @@ RMicroFileReader::GetNTupleProper(const char *ntupleName)
|
|||
offset += key.GetHeaderSize();
|
||||
ReadBuffer(&name, 1, offset);
|
||||
ReadBuffer(&name, name.GetSize(), offset);
|
||||
fileInfo.tkeys_list_nbytes += key.fKeyLen + 1 + name.GetSize();
|
||||
if (std::string_view(name.fData, name.fLName) != kNTupleClassName) {
|
||||
offset = offsetNextKey;
|
||||
continue;
|
||||
|
|
|
@ -38,6 +38,8 @@ struct RNTuple_File_Info {
|
|||
std::uint64_t anchor_key_seek;
|
||||
std::uint64_t anchor_key_nbytes;
|
||||
std::uint64_t rblob_key_header_nbytes;
|
||||
std::uint64_t tkeys_list_seek;
|
||||
std::uint64_t tkeys_list_nbytes;
|
||||
};
|
||||
|
||||
struct Root_File_Info {
|
||||
|
|
Loading…
Reference in a new issue