Mercurial > libpst
comparison src/libpst.h @ 360:26c48ea9d896
From Jeffrey Morlan:
pst_build_id_ptr reads the Block BTree into a linked list, which
pst_getID does a linear scan through. For large PSTs that have
millions of blocks, this is extremely slow - almost all time is spent
in pst_getID. Since the BTree entries must be in order, this can be
dramatically improved by reading into an array and using binary
search.
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Wed, 06 Jul 2016 10:21:08 -0700 |
parents | 09dd5299d91c |
children | 3a1d25c579c6 |
comparison
equal
deleted
inserted
replaced
359:a3e674fade6c | 360:26c48ea9d896 |
---|---|
103 typedef struct pst_index_ll { | 103 typedef struct pst_index_ll { |
104 uint64_t i_id; | 104 uint64_t i_id; |
105 uint64_t offset; | 105 uint64_t offset; |
106 uint64_t size; | 106 uint64_t size; |
107 int64_t u1; | 107 int64_t u1; |
108 struct pst_index_ll *next; | |
109 } pst_index_ll; | 108 } pst_index_ll; |
110 | 109 |
111 | 110 |
112 typedef struct pst_id2_tree { | 111 typedef struct pst_id2_tree { |
113 uint64_t id2; | 112 uint64_t id2; |
892 char* cwd; | 891 char* cwd; |
893 /** original file name when the file was opened */ | 892 /** original file name when the file was opened */ |
894 char* fname; | 893 char* fname; |
895 /** default character set for items without one */ | 894 /** default character set for items without one */ |
896 const char* charset; | 895 const char* charset; |
897 /** the head and tail of the linked list of index structures */ | 896 /** the array of index structures */ |
898 pst_index_ll *i_head, *i_tail; | 897 pst_index_ll *i_table; |
898 size_t i_count, i_capacity; | |
899 /** the head and tail of the top level of the descriptor tree */ | 899 /** the head and tail of the top level of the descriptor tree */ |
900 pst_desc_tree *d_head, *d_tail; | 900 pst_desc_tree *d_head, *d_tail; |
901 /** the head of the extended attributes linked list */ | 901 /** the head of the extended attributes linked list */ |
902 pst_x_attrib_ll *x_head; | 902 pst_x_attrib_ll *x_head; |
903 /** the head of the block recorder, a debug artifact | 903 /** the head of the block recorder, a debug artifact |