Mercurial > minori
annotate dep/pugixml/scripts/natvis/pugixml_compact.natvis @ 336:d260549151d6
dep/animone: fix undefined behavior, get correct length value
| author | Paper <paper@paper.us.eu.org> | 
|---|---|
| date | Wed, 19 Jun 2024 06:32:25 -0400 | 
| parents | d10b6c6b432e | 
| children | 
| rev | line source | 
|---|---|
| 
55
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
1 <?xml version="1.0" encoding="utf-8"?> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
2 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
3 <Type Name="pugi::xml_node"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
4 <DisplayString Condition="_root">{_root}</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
5 <DisplayString Condition="!_root">none</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
6 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
7 <ExpandedItem Condition="_root">_root</ExpandedItem> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
8 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
9 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
10 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
11 <Type Name="pugi::xml_attribute"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
12 <DisplayString Condition="_attr">{_attr}</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
13 <DisplayString Condition="!_attr">none</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
14 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
15 <ExpandedItem Condition="_attr">_attr</ExpandedItem> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
16 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
17 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
18 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
19 <Type Name="pugi::xml_node_struct"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
20 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
21 <Item Name="type">(pugi::xml_node_type)(header._flags & 15)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
22 <Item Name="name" Condition="name._data">name,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
23 <Item Name="value" Condition="value._data">value,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
24 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
25 <Synthetic Name="attributes" Condition="first_attribute._data"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
26 <DisplayString>...</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
27 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
28 <CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
29 <Variable Name="attribute_this" InitialValue="(size_t)&first_attribute" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
30 <Variable Name="attribute_data" InitialValue="first_attribute._data" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
31 <Variable Name="attribute_data_copy" InitialValue="attribute_data" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
32 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
33 <!-- first_attribute struct template arguments --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
34 <Variable Name="attribute_T1" InitialValue="11" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
35 <Variable Name="attribute_T2" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
36 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
37 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
38 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
39 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
40 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
41 <Variable Name="_page" InitialValue="*(char*)(attribute_this - attribute_T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
42 <Variable Name="page" InitialValue="((attribute_this - attribute_T1 - (_page << compact_alignment_log2)) - *(unsigned*)(attribute_this - attribute_T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
43 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
44 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
45 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
46 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
47 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
48 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
49 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
50 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
51 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
52 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
53 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
54 <Variable Name="h" InitialValue="(unsigned)attribute_this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
55 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
56 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
57 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
58 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
59 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
60 <Variable Name="attribute_real" InitialValue="(pugi::xml_attribute_struct*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
61 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
62 <!-- if _data < 255 --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
63 <Variable Name="attribute_short" InitialValue="(pugi::xml_attribute_struct*)(((size_t)attribute_this & ~(compact_alignment - 1)) + (attribute_data - 1 + attribute_T2) * compact_alignment)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
64 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
65 <Variable Name="number" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
66 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
67 <!-- Loop over all attributes --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
68 <Loop Condition="attribute_this && attribute_data"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
69 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
70 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
71 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
72 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
73 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
74 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
75 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
76 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
77 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
78 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
79 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
80 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
81 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
82 <If Condition="*probe_item == attribute_this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
83 <Exec>attribute_real = *(pugi::xml_attribute_struct**)(probe_item + 1)</Exec><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
84 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
85 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
86 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
87 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
88 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
89 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
90 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
91 <Exec>attribute_data_copy = attribute_data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
92 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
93 <If Condition="attribute_data_copy >= 255 && attribute_real"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
94 <Item Name="[{number}]">*attribute_real,view(child)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
95 <Exec>attribute_this = (size_t)&(*attribute_real).next_attribute</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
96 <Exec>attribute_data = (*attribute_real).next_attribute._data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
97 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
98 <If Condition="attribute_data_copy < 255 && attribute_short"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
99 <Item Name="[{number}]">*attribute_short,view(child)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
100 <Exec>attribute_this = (size_t)&(*attribute_short).next_attribute</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
101 <Exec>attribute_data = (*attribute_short).next_attribute._data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
102 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
103 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
104 <!-- next_attribute struct template arguments --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
105 <Exec>attribute_T1 = 7</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
106 <Exec>attribute_T2 = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
107 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
108 <!-- find() prolog again --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
109 <Exec>h = (unsigned)attribute_this</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
110 <Exec>bucket = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
111 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
112 <Exec>probe = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
113 <Exec>probe_item = (size_t*)0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
114 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
115 <Exec>attribute_real = (pugi::xml_attribute_struct*)0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
116 <Exec>attribute_short = (pugi::xml_attribute_struct*)(((size_t)attribute_this & ~(compact_alignment - 1)) + (attribute_data - 1 + attribute_T2) * compact_alignment)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
117 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
118 <Exec>number++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
119 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
120 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
121 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
122 </Synthetic> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
123 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
124 <CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
125 <Variable Name="child_this" InitialValue="&first_child" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
126 <Variable Name="child_data" InitialValue="first_child._data" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
127 <Variable Name="child_data_copy" InitialValue="child_data" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
128 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
129 <!-- first_child struct template arguments --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
130 <Variable Name="child_T1" InitialValue="8" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
131 <Variable Name="child_T2" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
132 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
133 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
134 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
135 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
136 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
137 <Variable Name="_page" InitialValue="*(char*)(child_this - child_T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
138 <Variable Name="page" InitialValue="((child_this - child_T1 - (_page << compact_alignment_log2)) - *(unsigned*)(child_this - child_T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
139 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
140 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
141 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
142 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
143 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
144 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
145 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
146 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
147 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
148 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
149 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
150 <Variable Name="h" InitialValue="(unsigned)child_this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
151 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
152 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
153 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
154 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
155 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
156 <Variable Name="child_real" InitialValue="(pugi::xml_node_struct*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
157 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
158 <!-- if _data < 255 --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
159 <Variable Name="child_short" InitialValue="(pugi::xml_node_struct*)(((size_t)child_this & ~(compact_alignment - 1)) + (child_data - 1 + child_T2) * compact_alignment)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
160 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
161 <Variable Name="number" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
162 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
163 <Loop Condition="child_this && child_data"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
164 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
165 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
166 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
167 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
168 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
169 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
170 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
171 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
172 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
173 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
174 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
175 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
176 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
177 <If Condition="*probe_item == child_this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
178 <Exec>child_real = *(pugi::xml_node_struct**)(probe_item + 1)</Exec><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
179 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
180 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
181 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
182 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
183 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
184 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
185 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
186 <Exec>child_data_copy = child_data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
187 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
188 <If Condition="child_data_copy >= 255 && child_real"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
189 <Item Name="[{number}]">*child_real,view(child)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
190 <Exec>child_this = (size_t)&(*child_real).next_sibling</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
191 <Exec>child_data = (*child_real).next_sibling._data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
192 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
193 <If Condition="child_data_copy < 255 && child_short"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
194 <Item Name="[{number}]">*child_short,view(child)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
195 <Exec>child_this = (size_t)&(*child_short).next_sibling</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
196 <Exec>child_data = (*child_short).next_sibling._data</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
197 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
198 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
199 <!-- next_sibling struct template arguments --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
200 <Exec>child_T1 = 10</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
201 <Exec>child_T2 = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
202 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
203 <!-- find() prolog again --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
204 <Exec>h = (unsigned)child_this</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
205 <Exec>bucket = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
206 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
207 <Exec>probe = 0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
208 <Exec>probe_item = (size_t*)0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
209 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
210 <Exec>child_real = (pugi::xml_node_struct*)0</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
211 <Exec>child_short = (pugi::xml_node_struct*)(((size_t)child_this & ~(compact_alignment - 1)) + (child_data - 1 + child_T2) * compact_alignment)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
212 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
213 <Exec>number++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
214 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
215 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
216 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
217 <Item Name="next_sibling" ExcludeView="child">next_sibling</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
218 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
219 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
220 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
221 <Type Name="pugi::xml_attribute_struct"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
222 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
223 <Item Name="name">name,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
224 <Item Name="value">value,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
225 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
226 <CustomListItems ExcludeView="child"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
227 <Variable Name="attribute_this" InitialValue="&next_attribute" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
228 <Variable Name="attribute_data" InitialValue="next_attribute._data" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
229 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
230 <!-- next_attribute struct template arguments --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
231 <Variable Name="attribute_T1" InitialValue="7" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
232 <Variable Name="attribute_T2" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
233 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
234 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
235 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
236 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
237 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
238 <Variable Name="_page" InitialValue="*(char*)(attribute_this - attribute_T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
239 <Variable Name="page" InitialValue="((attribute_this - attribute_T1 - (_page << compact_alignment_log2)) - *(unsigned*)(attribute_this - attribute_T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
240 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
241 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
242 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
243 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
244 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
245 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
246 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
247 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
248 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
249 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
250 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
251 <Variable Name="h" InitialValue="(unsigned)attribute_this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
252 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
253 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
254 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
255 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
256 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
257 <Variable Name="attribute_real" InitialValue="(pugi::xml_attribute_struct*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
258 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
259 <!-- if _data < 255 --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
260 <Variable Name="attribute_short" InitialValue="(pugi::xml_attribute_struct*)(((size_t)attribute_this & ~(compact_alignment - 1)) + (attribute_data - 1 + attribute_T2) * compact_alignment)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
261 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
262 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
263 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
264 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
265 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
266 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
267 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
268 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
269 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
270 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
271 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
272 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
273 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
274 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
275 <If Condition="*probe_item == attribute_this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
276 <Exec>attribute_real = *(pugi::xml_attribute_struct**)(probe_item + 1)</Exec><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
277 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
278 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
279 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
280 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
281 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
282 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
283 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
284 <If Condition="attribute_data >= 255 && attribute_real"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
285 <Item Name="next_attribute">*attribute_real</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
286 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
287 <If Condition="attribute_data != 0 && attribute_data < 255 && attribute_short"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
288 <Item Name="next_attribute">*attribute_short</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
289 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
290 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
291 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
292 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
293 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
294 <Type Name="pugi::impl::`anonymous-namespace'::compact_string<*,*>"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
295 <Expand HideRawView="1"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
296 <CustomListItems Condition="_data && _data < 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
297 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
298 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
299 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
300 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
301 <Variable Name="_page" InitialValue="*(char*)(this - $T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
302 <Variable Name="page" InitialValue="((this - $T1 - (_page << compact_alignment_log2)) - *(unsigned*)(this - $T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
303 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
304 <Variable Name="compact_string_base" InitialValue="*(size_t*)(page + 5 * sizeof(void*))" /><!-- 5 pointer offsetof(page, compact_string_base)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
305 <Variable Name="base" InitialValue="this - $T2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
306 <Variable Name="offset" InitialValue="((*(short*)base - 1) << 7) + (_data - 1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
307 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
308 <Item Name="value">(pugi::char_t*)(compact_string_base + offset * sizeof(pugi::char_t)),na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
309 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
310 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
311 <CustomListItems Condition="_data && _data >= 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
312 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
313 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
314 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
315 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
316 <Variable Name="_page" InitialValue="*(char*)(this - $T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
317 <Variable Name="page" InitialValue="((this - $T1 - (_page << compact_alignment_log2)) - *(unsigned*)(this - $T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
318 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
319 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
320 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
321 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
322 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
323 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
324 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
325 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
326 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
327 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
328 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
329 <Variable Name="h" InitialValue="(unsigned)this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
330 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
331 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
332 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
333 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
334 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
335 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
336 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
337 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
338 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
339 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
340 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
341 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
342 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
343 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
344 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
345 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
346 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
347 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
348 <If Condition="*probe_item == this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
349 <Item Name="value">*(pugi::char_t**)(probe_item + 1)</Item><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
350 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
351 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
352 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
353 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
354 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
355 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
356 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
357 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
358 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
359 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
360 <Type Name="pugi::impl::`anonymous-namespace'::compact_pointer<pugi::xml_node_struct,*,*>"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
361 <DisplayString Condition="!_data">nullptr</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
362 <DisplayString Condition="_data">...</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
363 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
364 <Expand HideRawView="1"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
365 <CustomListItems Condition="_data && _data < 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
366 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
367 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
368 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
369 <Item Name="value">*(pugi::xml_node_struct*)(((size_t)this & ~(compact_alignment - 1)) + (_data - 1 + $T2) * compact_alignment)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
370 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
371 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
372 <CustomListItems Condition="_data && _data >= 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
373 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
374 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
375 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
376 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
377 <Variable Name="_page" InitialValue="*(char*)(this - $T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
378 <Variable Name="page" InitialValue="((this - $T1 - (_page << compact_alignment_log2)) - *(unsigned*)(this - $T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
379 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
380 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
381 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
382 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
383 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
384 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
385 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
386 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
387 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
388 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
389 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
390 <Variable Name="h" InitialValue="(unsigned)this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
391 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
392 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
393 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
394 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
395 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
396 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
397 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
398 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
399 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
400 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
401 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
402 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
403 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
404 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
405 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
406 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
407 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
408 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
409 <If Condition="*probe_item == this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
410 <Item Name="value">**(pugi::xml_node_struct**)(probe_item + 1)</Item><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
411 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
412 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
413 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
414 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
415 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
416 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
417 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
418 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
419 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
420 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
421 <Type Name="pugi::impl::`anonymous-namespace'::compact_pointer<pugi::xml_attribute_struct,*,*>"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
422 <DisplayString Condition="!_data">nullptr</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
423 <DisplayString Condition="_data">...</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
424 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
425 <Expand HideRawView="1"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
426 <CustomListItems Condition="_data && _data < 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
427 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
428 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
429 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
430 <Item Name="value">*(pugi::xml_attribute_struct*)(((size_t)this & ~(compact_alignment - 1)) + (_data - 1 + $T2) * compact_alignment)</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
431 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
432 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
433 <CustomListItems Condition="_data && _data >= 255"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
434 <Variable Name="compact_alignment_log2" InitialValue="2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
435 <Variable Name="compact_alignment" InitialValue="1 << compact_alignment_log2" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
436 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
437 <!-- compact_get_page() --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
438 <Variable Name="_page" InitialValue="*(char*)(this - $T1)" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
439 <Variable Name="page" InitialValue="((this - $T1 - (_page << compact_alignment_log2)) - *(unsigned*)(this - $T1 - (_page << compact_alignment_log2)))" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
440 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
441 <!-- page->allocator->_hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
442 <Variable Name="allocator" InitialValue="*(size_t*)page" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
443 <Variable Name="_hash" InitialValue="*(size_t*)(allocator + 2 * sizeof(size_t))" /><!--2 pointer offsetof(allocator, _hash)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
444 <Variable Name="_items" InitialValue="*(size_t*)_hash" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
445 <Variable Name="_capacity" InitialValue="*((size_t*)_hash + 1)" /><!--1 pointer offsetof(_hash, _capacity)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
446 <Variable Name="_count" InitialValue="*((size_t*)_hash + 2)" /><!--2 pointer offsetof(_hash, _count)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
447 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
448 <!-- find() prolog --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
449 <Variable Name="hashmod" InitialValue="_capacity - 1" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
450 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
451 <Variable Name="h" InitialValue="(unsigned)this" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
452 <Variable Name="bucket" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
453 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
454 <Variable Name="probe" InitialValue="0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
455 <Variable Name="probe_item" InitialValue="(size_t*)0" /> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
456 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
457 <!-- find() hash --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
458 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
459 <Exec>h = h * (0x85ebca6bu)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
460 <Exec>h = h ^ (h >> 13)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
461 <Exec>h = h * (0xc2b2ae35u)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
462 <Exec>h = h ^ (h >> 16)</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
463 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
464 <Exec>bucket = h & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
465 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
466 <!-- find() loop --> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
467 <Loop Condition="probe <= hashmod &&_capacity"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
468 <Exec>probe_item = (size_t*)_items + bucket * 2</Exec><!--2 pointer sizeof(item_t)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
469 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
470 <If Condition="*probe_item == this || *probe_item == 0"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
471 <Item Name="value">**(pugi::xml_attribute_struct**)(probe_item + 1)</Item><!--1 pointer offsetof(item_t, value)--> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
472 <Break/> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
473 </If> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
474 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
475 <Exec>bucket = (bucket + probe + 1) & hashmod</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
476 <Exec>probe++</Exec> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
477 </Loop> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
478 </CustomListItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
479 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
480 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
481 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
482 <Type Name="pugi::xpath_node"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
483 <DisplayString Condition="_node._root && _attribute._attr">{_node,na} {_attribute,na}</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
484 <DisplayString Condition="_node._root">{_node,na}</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
485 <DisplayString Condition="_attribute._attr">{_attribute}</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
486 <DisplayString>empty</DisplayString> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
487 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
488 <Expand HideRawView="1"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
489 <ExpandedItem Condition="_node._root && !_attribute._attr">_node</ExpandedItem> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
490 <ExpandedItem Condition="!_node._root && _attribute._attr">_attribute</ExpandedItem> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
491 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
492 <Item Name="node" Condition="_node._root && _attribute._attr">_node,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
493 <Item Name="attribute" Condition="_node._root && _attribute._attr">_attribute,na</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
494 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
495 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
496 | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
497 <Type Name="pugi::xpath_node_set"> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
498 <Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
499 <Item Name="type">_type</Item> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
500 <ArrayItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
501 <Size>_end - _begin</Size> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
502 <ValuePointer>_begin</ValuePointer> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
503 </ArrayItems> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
504 </Expand> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
505 </Type> | 
| 
 
d10b6c6b432e
add xml lib, we will need to use it eventually
 
Paper <mrpapersonic@gmail.com> 
parents:  
diff
changeset
 | 
506 </AutoVisualizer> | 
