Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ValueFixup.cs
Go to the documentation of this file.
1
using
System.Reflection
;
2
3
namespace
System.Runtime.Serialization.Formatters.Binary
;
4
5
internal
sealed
class
ValueFixup
6
{
7
internal
ValueFixupEnum
_valueFixupEnum
;
8
9
internal
Array
_arrayObj
;
10
11
internal
int
[]
_indexMap
;
12
13
internal
object
_memberObject
;
14
15
internal
ReadObjectInfo
_objectInfo
;
16
17
internal
string
_memberName
;
18
19
internal
ValueFixup
(
Array
arrayObj
,
int
[]
indexMap
)
20
{
21
_valueFixupEnum
=
ValueFixupEnum
.Array;
22
_arrayObj
=
arrayObj
;
23
_indexMap
=
indexMap
;
24
}
25
26
internal
ValueFixup
(
object
memberObject
,
string
memberName
,
ReadObjectInfo
objectInfo
)
27
{
28
_valueFixupEnum
=
ValueFixupEnum
.Member;
29
_memberObject
=
memberObject
;
30
_memberName
=
memberName
;
31
_objectInfo
=
objectInfo
;
32
}
33
34
internal
void
Fixup
(
ParseRecord
record
,
ParseRecord
parent)
35
{
36
object
newObj
=
record
._newObj;
37
switch
(
_valueFixupEnum
)
38
{
39
case
ValueFixupEnum
.Array:
40
_arrayObj
.
SetValue
(
newObj
,
_indexMap
);
41
break
;
42
case
ValueFixupEnum
.Header:
43
throw
new
PlatformNotSupportedException
();
44
case
ValueFixupEnum
.Member:
45
{
46
if
(
_objectInfo
.
_isSi
)
47
{
48
_objectInfo
.
_objectManager
.
RecordDelayedFixup
(parent.
_objectId
,
_memberName
,
record
._objectId);
49
break
;
50
}
51
MemberInfo
memberInfo
=
_objectInfo
.
GetMemberInfo
(
_memberName
);
52
if
(
memberInfo
!=
null
)
53
{
54
_objectInfo
.
_objectManager
.
RecordFixup
(parent.
_objectId
,
memberInfo
,
record
._objectId);
55
}
56
break
;
57
}
58
}
59
}
60
}
System.Array.SetValue
unsafe void SetValue(object? value, int index)
Definition
Array.cs:1022
System.Array
Definition
Array.cs:16
System.PlatformNotSupportedException
Definition
PlatformNotSupportedException.cs:9
System.Reflection.MemberInfo
Definition
MemberInfo.cs:7
System.Runtime.Serialization.Formatters.Binary.ParseRecord._objectId
long _objectId
Definition
ParseRecord.cs:29
System.Runtime.Serialization.Formatters.Binary.ParseRecord
Definition
ParseRecord.cs:4
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo._objectManager
ObjectManager _objectManager
Definition
ReadObjectInfo.cs:17
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo._isSi
bool _isSi
Definition
ReadObjectInfo.cs:21
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.GetMemberInfo
MemberInfo GetMemberInfo(string name)
Definition
ReadObjectInfo.cs:162
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo
Definition
ReadObjectInfo.cs:9
System.Runtime.Serialization.Formatters.Binary.ValueFixup.ValueFixup
ValueFixup(object memberObject, string memberName, ReadObjectInfo objectInfo)
Definition
ValueFixup.cs:26
System.Runtime.Serialization.Formatters.Binary.ValueFixup._memberObject
object _memberObject
Definition
ValueFixup.cs:13
System.Runtime.Serialization.Formatters.Binary.ValueFixup._memberName
string _memberName
Definition
ValueFixup.cs:17
System.Runtime.Serialization.Formatters.Binary.ValueFixup.ValueFixup
ValueFixup(Array arrayObj, int[] indexMap)
Definition
ValueFixup.cs:19
System.Runtime.Serialization.Formatters.Binary.ValueFixup.Fixup
void Fixup(ParseRecord record, ParseRecord parent)
Definition
ValueFixup.cs:34
System.Runtime.Serialization.Formatters.Binary.ValueFixup._indexMap
int[] _indexMap
Definition
ValueFixup.cs:11
System.Runtime.Serialization.Formatters.Binary.ValueFixup._objectInfo
ReadObjectInfo _objectInfo
Definition
ValueFixup.cs:15
System.Runtime.Serialization.Formatters.Binary.ValueFixup._valueFixupEnum
ValueFixupEnum _valueFixupEnum
Definition
ValueFixup.cs:7
System.Runtime.Serialization.Formatters.Binary.ValueFixup._arrayObj
Array _arrayObj
Definition
ValueFixup.cs:9
System.Runtime.Serialization.Formatters.Binary.ValueFixup
Definition
ValueFixup.cs:6
System.Runtime.Serialization.ObjectManager.RecordDelayedFixup
virtual void RecordDelayedFixup(long objectToBeFixed, string memberName, long objectRequired)
Definition
ObjectManager.cs:666
System.Runtime.Serialization.ObjectManager.RecordFixup
virtual void RecordFixup(long objectToBeFixed, MemberInfo member, long objectRequired)
Definition
ObjectManager.cs:648
System.Reflection
Definition
ICustomTypeProvider.cs:1
System.Runtime.Serialization.Formatters.Binary.ValueFixupEnum
ValueFixupEnum
Definition
ValueFixupEnum.cs:4
System.Runtime.Serialization.Formatters.Binary
Definition
BinaryArray.cs:1
System.Runtime.Serialization.CollectionKind.Dictionary
@ Dictionary
source
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
ValueFixup.cs
Generated by
1.10.0