@@ -51,7 +51,12 @@ public BaseNumericNode GetUnderlayingNode()
5151 throw new Exception ( ) ; // TODO
5252 }
5353
54- private long ReadValueFromMemory ( MemoryBuffer memory )
54+ private string GetTextRepresentation ( MemoryBuffer memory )
55+ {
56+ return Enum . UseFlagsMode ? GetFlagsStringRepresentation ( memory ) : GetStringRepresentation ( memory ) ;
57+ }
58+
59+ private long ReadSignedValueFromMemory ( MemoryBuffer memory )
5560 {
5661 switch ( Enum . Size )
5762 {
@@ -63,12 +68,24 @@ private long ReadValueFromMemory(MemoryBuffer memory)
6368 return memory . ReadInt32 ( Offset ) ;
6469 case EnumDescription . UnderlyingTypeSize . EightBytes :
6570 return memory . ReadInt64 ( Offset ) ;
71+ default :
72+ throw new ArgumentOutOfRangeException ( ) ;
6673 }
74+ }
6775
68- throw new Exception ( ) ; // TODO
76+ private string GetStringRepresentation ( MemoryBuffer memory )
77+ {
78+ var value = ReadSignedValueFromMemory ( memory ) ;
79+ var index = Enum . Values . FindIndex ( kv => kv . Value == value ) ;
80+ if ( index == - 1 )
81+ {
82+ return value . ToString ( ) ;
83+ }
84+
85+ return Enum . Values [ index ] . Key ;
6986 }
7087
71- private ulong ReadFlagsValueFromMemory ( MemoryBuffer memory )
88+ private ulong ReadUnsignedValueFromMemory ( MemoryBuffer memory )
7289 {
7390 switch ( Enum . Size )
7491 {
@@ -80,31 +97,14 @@ private ulong ReadFlagsValueFromMemory(MemoryBuffer memory)
8097 return memory . ReadUInt32 ( Offset ) ;
8198 case EnumDescription . UnderlyingTypeSize . EightBytes :
8299 return memory . ReadUInt64 ( Offset ) ;
100+ default :
101+ throw new ArgumentOutOfRangeException ( ) ;
83102 }
84-
85- throw new Exception ( ) ; // TODO
86- }
87-
88- private string GetTextRepresentation ( MemoryBuffer memory )
89- {
90- return Enum . UseFlagsMode ? GetFlagsStringRepresentation ( memory ) : GetStringRepresentation ( memory ) ;
91- }
92-
93- private string GetStringRepresentation ( MemoryBuffer memory )
94- {
95- var value = ReadValueFromMemory ( memory ) ;
96- var index = Enum . Values . FindIndex ( kv => kv . Value == value ) ;
97- if ( index == - 1 )
98- {
99- return value . ToString ( ) ;
100- }
101-
102- return Enum . Values [ index ] . Key ;
103103 }
104104
105105 private string GetFlagsStringRepresentation ( MemoryBuffer memory )
106106 {
107- var value = ReadFlagsValueFromMemory ( memory ) ;
107+ var value = ReadUnsignedValueFromMemory ( memory ) ;
108108 var result = value ;
109109
110110 var values = Enum . Values ;
0 commit comments