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

◆ WriteMultiMerge() [1/2]

unsafe void System.Diagnostics.Tracing.EventSource.WriteMultiMerge ( string eventName,
ref EventSourceOptions options,
TraceLoggingEventTypes eventTypes,
Guid * activityID,
Guid * childActivityID,
EventData * data )
inlinepackageinherited

Definition at line 2898 of file EventSource.cs.

2899 {
2900 if (!IsEnabled())
2901 {
2902 return;
2903 }
2904 fixed (EventSourceOptions* ptr2 = &options)
2905 {
2906 EventDescriptor descriptor;
2907 NameInfo nameInfo = UpdateDescriptor(eventName, eventTypes, ref options, out descriptor);
2908 if (nameInfo == null)
2909 {
2910 return;
2911 }
2913 int num = eventTypes.dataCount + eventTypes.typeInfos.Length * 2 + 3;
2914 EventData* ptr = stackalloc EventData[num];
2915 for (int i = 0; i < num; i++)
2916 {
2917 ptr[i] = default(EventData);
2918 }
2921 {
2922 fixed (byte* pointer2 = nameInfo.nameMetadata)
2923 {
2924 fixed (byte* pointer3 = eventTypes.typeMetadata)
2925 {
2926 ptr->SetMetadata(pointer, providerMetadata.Length, 2);
2927 ptr[1].SetMetadata(pointer2, nameInfo.nameMetadata.Length, 1);
2928 ptr[2].SetMetadata(pointer3, eventTypes.typeMetadata.Length, 1);
2929 int num2 = 3;
2930 for (int j = 0; j < eventTypes.typeInfos.Length; j++)
2931 {
2932 ptr[num2].m_Ptr = data[j].m_Ptr;
2933 ptr[num2].m_Size = data[j].m_Size;
2934 if (data[j].m_Size == 4 && eventTypes.typeInfos[j].DataType == typeof(bool))
2935 {
2936 ptr[num2].m_Size = 1;
2937 }
2938 num2++;
2939 }
2940 WriteEventRaw(eventName, ref descriptor, orCreateEventHandle, activityID, childActivityID, num2, (IntPtr)ptr);
2941 }
2942 }
2943 }
2944 }
2945 }
NameInfo UpdateDescriptor(string name, TraceLoggingEventTypes eventInfo, ref EventSourceOptions options, out EventDescriptor descriptor)
readonly TraceLoggingEventHandleTable m_eventHandleTable
virtual ReadOnlySpan< byte > ProviderMetadata
volatile OverrideEventProvider m_eventPipeProvider
unsafe void WriteEventRaw(string eventName, ref EventDescriptor eventDescriptor, IntPtr eventHandle, Guid *activityID, Guid *relatedActivityID, int dataCount, IntPtr data)

References System.Diagnostics.Tracing.EventSource.IsEnabled(), System.Diagnostics.Tracing.EventSource.m_eventHandleTable, System.Diagnostics.Tracing.EventSource.m_eventPipeProvider, System.Diagnostics.Tracing.EventSource.EventData.m_Ptr, System.Diagnostics.Tracing.EventSource.EventData.m_Size, System.options, System.pointer, System.Diagnostics.Tracing.EventSource.ProviderMetadata, System.Diagnostics.Tracing.EventSource.UpdateDescriptor(), and System.Diagnostics.Tracing.EventSource.WriteEventRaw().