Преглед на файлове

nativs:
* don't abuse Intrinsic, it also has drawbacks
* refine natvis snippet for dispatcher class

Michele Caini преди 4 години
родител
ревизия
8db78b2190
променени са 2 файла, в които са добавени 5 реда и са изтрити 16 реда
  1. 4 12
      natvis/entt/container.natvis
  2. 1 4
      natvis/entt/signal.natvis

+ 4 - 12
natvis/entt/container.natvis

@@ -1,40 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
 	<Type Name="entt::dense_hash_map&lt;*&gt;">
 	<Type Name="entt::dense_hash_map&lt;*&gt;">
-		<Intrinsic Name="capacity" Expression="packed.first_base::value.capacity()"/>
 		<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
 		<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
 		<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
 		<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
-		<Intrinsic Name="element" Expression="packed.first_base::value[idx].element">
-			<Parameter Name="idx" Type="int"/>
-		</Intrinsic>
 		<DisplayString>{{ size={ size() } }}</DisplayString>
 		<DisplayString>{{ size={ size() } }}</DisplayString>
 		<Expand>
 		<Expand>
-			<Item Name="[capacity]" ExcludeView="simple">capacity()</Item>
+			<Item Name="[capacity]" ExcludeView="simple">packed.first_base::value.capacity()</Item>
 			<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
 			<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
 			<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
 			<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
 			<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
 			<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
 			<IndexListItems>
 			<IndexListItems>
 				<Size>size()</Size>
 				<Size>size()</Size>
-				<ValueNode>element($i)</ValueNode>
+				<ValueNode>packed.first_base::value[$i].element</ValueNode>
 			</IndexListItems>
 			</IndexListItems>
 		</Expand>
 		</Expand>
 	</Type>
 	</Type>
 	<Type Name="entt::dense_hash_set&lt;*&gt;">
 	<Type Name="entt::dense_hash_set&lt;*&gt;">
-		<Intrinsic Name="capacity" Expression="packed.first_base::value.capacity()"/>
 		<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
 		<Intrinsic Name="size" Expression="packed.first_base::value.size()"/>
 		<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
 		<Intrinsic Name="bucket_count" Expression="sparse.first_base::value.size()"/>
-		<Intrinsic Name="element" Expression="packed.first_base::value[idx].element">
-			<Parameter Name="idx" Type="int"/>
-		</Intrinsic>
 		<DisplayString>{{ size={ size() } }}</DisplayString>
 		<DisplayString>{{ size={ size() } }}</DisplayString>
 		<Expand>
 		<Expand>
-			<Item Name="[capacity]" ExcludeView="simple">capacity()</Item>
+			<Item Name="[capacity]" ExcludeView="simple">packed.first_base::value.capacity()</Item>
 			<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
 			<Item Name="[bucket_count]" ExcludeView="simple">bucket_count()</Item>
 			<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
 			<Item Name="[load_factor]" ExcludeView="simple">(float)size() / (float)bucket_count()</Item>
 			<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
 			<Item Name="[max_load_factor]" ExcludeView="simple">threshold</Item>
 			<IndexListItems>
 			<IndexListItems>
 				<Size>size()</Size>
 				<Size>size()</Size>
-				<ValueNode>element($i)</ValueNode>
+				<ValueNode>packed.first_base::value[$i].element</ValueNode>
 			</IndexListItems>
 			</IndexListItems>
 		</Expand>
 		</Expand>
 	</Type>
 	</Type>

+ 1 - 4
natvis/entt/signal.natvis

@@ -11,9 +11,6 @@
 		</Expand>
 		</Expand>
 	</Type>
 	</Type>
 	<Type Name="entt::dispatcher">
 	<Type Name="entt::dispatcher">
-		<Intrinsic Name="pool_at" Expression="pools.packed.first_base::value[idx].element.second">
-			<Parameter Name="idx" Type="int"/>
-		</Intrinsic>
 		<DisplayString>{{ size={ pools.size() } }}</DisplayString>
 		<DisplayString>{{ size={ pools.size() } }}</DisplayString>
 		<Expand>
 		<Expand>
 			<Synthetic Name="[pools]">
 			<Synthetic Name="[pools]">
@@ -21,7 +18,7 @@
 				<Expand>
 				<Expand>
 					<IndexListItems>
 					<IndexListItems>
 						<Size>pools.size()</Size>
 						<Size>pools.size()</Size>
-						<ValueNode>pool_at($i)</ValueNode>
+						<ValueNode>*pools.packed.first_base::value[$i].element.second</ValueNode>
 					</IndexListItems>
 					</IndexListItems>
 				</Expand>
 				</Expand>
 			</Synthetic>
 			</Synthetic>