Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GenerateMetadataForProperty()

static unsafe bool System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty ( PropertyAnalysis property,
byte * pMetadataBlob,
ref uint offset,
uint blobSize )
inlinestaticprivate

Definition at line 57 of file EventParameterInfo.cs.

58 {
59 if (property.typeInfo is InvokeTypeInfo invokeTypeInfo)
60 {
61 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, 1u);
62 PropertyAnalysis[] properties = invokeTypeInfo.properties;
63 if (properties != null)
64 {
65 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (uint)properties.Length);
66 PropertyAnalysis[] array = properties;
67 foreach (PropertyAnalysis property2 in array)
68 {
69 if (!GenerateMetadataForProperty(property2, pMetadataBlob, ref offset, blobSize))
70 {
71 return false;
72 }
73 }
74 }
75 else
76 {
77 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, 0u);
78 }
79 fixed (char* src = property.name)
80 {
81 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (byte*)src, (uint)((property.name.Length + 1) * 2));
82 }
83 }
84 else
85 {
86 TypeCode typeCodeExtended = GetTypeCodeExtended(property.typeInfo.DataType);
87 if (typeCodeExtended == TypeCode.Object)
88 {
89 return false;
90 }
91 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (uint)typeCodeExtended);
92 fixed (char* src2 = property.name)
93 {
94 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (byte*)src2, (uint)((property.name.Length + 1) * 2));
95 }
96 }
97 return true;
98 }
static unsafe bool GenerateMetadataForProperty(PropertyAnalysis property, byte *pMetadataBlob, ref uint offset, uint blobSize)
static TypeCode GetTypeCodeExtended(Type parameterType)

References System.array, System.Diagnostics.Tracing.TraceLoggingTypeInfo.DataType, System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty(), System.Diagnostics.Tracing.EventParameterInfo.GetTypeCodeExtended(), System.Diagnostics.Tracing.PropertyAnalysis.name, System.offset, System.Diagnostics.Tracing.PropertyAnalysis.typeInfo, and System.Diagnostics.Tracing.EventPipeMetadataGenerator.WriteToBuffer().

Referenced by System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata(), and System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty().