Skip to content

Commit d19d7e0

Browse files
committed
modify call-chain from Span<object> to ROS<object>, slice in AvTraceEventHandler
1 parent b2b6265 commit d19d7e0

File tree

6 files changed

+51
-48
lines changed

6 files changed

+51
-48
lines changed

eng/WpfArcadeSdk/tools/CodeGen/AvTrace/AvTraceMessages.tt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ namespace MS.Internal
7070
<# } #>
7171

7272
/// <summary> Send a single trace output </summary>
73-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
73+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
7474
{
7575
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
7676
}
7777

7878
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
79-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
79+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
8080
{
8181
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
8282
}

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Generated/AvTraceMessages.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ public static AvTraceDetails InvokeHandlers
6969
}
7070

7171
/// <summary> Send a single trace output </summary>
72-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
72+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
7373
{
7474
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
7575
}
7676

7777
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
78-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
78+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
7979
{
8080
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
8181
}
@@ -216,13 +216,13 @@ public static AvTraceDetails AnimateStorageValidationNoLongerFailing
216216
}
217217

218218
/// <summary> Send a single trace output </summary>
219-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
219+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
220220
{
221221
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
222222
}
223223

224224
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
225-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
225+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
226226
{
227227
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
228228
}

src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Generated/AvTraceMessages.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,13 +1333,13 @@ public static AvTraceDetails XmlBuildCollection(params object[] args)
13331333
}
13341334

13351335
/// <summary> Send a single trace output </summary>
1336-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
1336+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
13371337
{
13381338
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
13391339
}
13401340

13411341
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
1342-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
1342+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
13431343
{
13441344
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
13451345
}
@@ -1424,13 +1424,13 @@ public static AvTraceDetails UnableToFreezeAnimatedProperties
14241424
}
14251425

14261426
/// <summary> Send a single trace output </summary>
1427-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
1427+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
14281428
{
14291429
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
14301430
}
14311431

14321432
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
1433-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
1433+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
14341434
{
14351435
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
14361436
}
@@ -1627,13 +1627,13 @@ public static AvTraceDetails SetKey
16271627
}
16281628

16291629
/// <summary> Send a single trace output </summary>
1630-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
1630+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
16311631
{
16321632
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
16331633
}
16341634

16351635
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
1636-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
1636+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
16371637
{
16381638
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
16391639
}
@@ -1886,13 +1886,13 @@ public static AvTraceDetails TypeConvertFallback
18861886
}
18871887

18881888
/// <summary> Send a single trace output </summary>
1889-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
1889+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
18901890
{
18911891
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
18921892
}
18931893

18941894
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
1895-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
1895+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
18961896
{
18971897
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
18981898
}
@@ -1935,13 +1935,13 @@ public static AvTraceDetails HwndHostIn3D
19351935
}
19361936

19371937
/// <summary> Send a single trace output </summary>
1938-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
1938+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
19391939
{
19401940
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
19411941
}
19421942

19431943
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
1944-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters )
1944+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
19451945
{
19461946
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
19471947
}
@@ -2060,13 +2060,13 @@ public static AvTraceDetails RejectingJumpListCategoryBecauseNoRegisteredHandler
20602060
}
20612061

20622062
/// <summary> Send a single trace output </summary>
2063-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
2063+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
20642064
{
20652065
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
20662066
}
20672067

20682068
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
2069-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
2069+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
20702070
{
20712071
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
20722072
}

src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/TraceData.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,13 @@ public static bool IsExtendedTraceEnabled(object element, TraceDataLevel level)
8787
}
8888

8989
// report/describe any additional parameters passed to TraceData.Trace()
90-
public static void OnTrace(AvTraceBuilder traceBuilder, ReadOnlySpan<object> parameters, int start)
90+
public static void OnTrace(AvTraceBuilder traceBuilder, ReadOnlySpan<object> parameters)
9191
{
92-
for( int i = start; i < parameters.Length; i++ )
92+
for (int i = 0; i < parameters.Length; i++)
9393
{
9494
object o = parameters[i];
95-
string s = o as string;
9695
traceBuilder.Append(" ");
97-
if (s != null)
96+
if (o is string s)
9897
{
9998
traceBuilder.Append(s);
10099
}

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/AvTrace.cs

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ internal static bool IsDebuggerAttached()
246246
// note: labels start at index 1, parameters start at index 0
247247
//
248248

249-
public string Trace(TraceEventType type, int eventId, string message, string[] labels, params Span<object> parameters)
249+
public string Trace(TraceEventType type, int eventId, string message, string[] labels, params ReadOnlySpan<object> parameters)
250250
{
251251
// Don't bother building the string if this trace is going to be ignored.
252252

@@ -265,19 +265,25 @@ public string Trace(TraceEventType type, int eventId, string message, string[] l
265265
int i = 1, j = 0;
266266
for (; i < labels.Length && j < parameters.Length; i++, j++)
267267
{
268-
// Append to the format string a "; {0} = '{1}'", where the index increments (e.g. the second iteration will
269-
// produce {2} & {3}).
268+
// Append to the format string a "; {0} = '{1}'", where the index increments
269+
// (e.g. the second iteration will produce {2} & {3}).
270270

271271
traceBuilder.Append($"; {{{formatIndex++}}}='{{{formatIndex++}}}'");
272272

273-
// If this parameter is null, convert to "<null>"; otherwise, when a string.format is ultimately called
274-
// it produces bad results.
273+
// Add the label to the combined list.
274+
275+
combinedList.Add(labels[i]);
276+
277+
// If the parameter is null, convert to "<null>"; otherwise,
278+
// when a string.format is ultimately called it produces bad results.
275279

276280
if (parameters[j] == null)
277-
parameters[j] = "<null>";
281+
{
282+
combinedList.Add("<null>");
283+
}
278284

279285
// Otherwise, if this is an interesting object, add the hash code and type to
280-
// the format string explicitely.
286+
// the format string explicitly.
281287

282288
else if (SuppressGeneratedParameters == false
283289
&& parameters[j].GetType() != typeof(string)
@@ -287,23 +293,23 @@ public string Trace(TraceEventType type, int eventId, string message, string[] l
287293
{
288294
traceBuilder.Append($"; {labels[i]}.HashCode='{GetHashCodeHelper(parameters[j])}'");
289295
traceBuilder.Append($"; {labels[i]}.Type='{GetTypeHelper(parameters[j])}'");
290-
}
291-
292296

293-
// Add the label & parameter to the combined list.
294-
// (As an optimization, the generated classes could pre-allocate a thread-safe static array, to avoid
295-
// this allocation and the ToArray allocation below.)
297+
// Add the parameter to the combined list.
296298

297-
combinedList.Add(labels[i]);
298-
combinedList.Add(parameters[j]);
299+
combinedList.Add(parameters[j]);
300+
}
301+
else // Add the parameter to the combined list.
302+
{
303+
combinedList.Add(parameters[j]);
304+
}
299305
}
300306

301-
// It's OK if we terminate because we have more lables than parameters;
307+
// It's OK if we terminate because we have more labels than parameters;
302308
// this is used by traces to have out-values in the Stop message.
303309

304310
if (TraceExtraMessages != null && j < parameters.Length)
305311
{
306-
TraceExtraMessages(traceBuilder, parameters, j);
312+
TraceExtraMessages(traceBuilder, parameters.Slice(j));
307313
}
308314
}
309315

@@ -326,19 +332,17 @@ public string Trace(TraceEventType type, int eventId, string message, string[] l
326332
return traceMessage;
327333
}
328334

329-
330335
//
331336
// Trace an event, as both a TraceEventType.Start and TraceEventType.Stop.
332337
// (information is contained in the Start event)
333338
//
334339

335-
public void TraceStartStop(int eventID, string message, string[] labels, params Span<object> parameters)
340+
public void TraceStartStop(int eventID, string message, string[] labels, params ReadOnlySpan<object> parameters)
336341
{
337342
Trace(TraceEventType.Start, eventID, message, labels, parameters);
338343
_traceSource.TraceEvent(TraceEventType.Stop, eventID);
339344
}
340345

341-
342346
//
343347
// Convert the value to a string, even if the system conversion throws
344348
// an exception.
@@ -496,7 +500,7 @@ public static Type GetTypeHelper(object value)
496500

497501
}
498502

499-
internal delegate void AvTraceEventHandler(AvTraceBuilder traceBuilder, ReadOnlySpan<object> parameters, int start);
503+
internal delegate void AvTraceEventHandler(AvTraceBuilder traceBuilder, ReadOnlySpan<object> parameters);
500504

501505
internal class AvTraceBuilder
502506
{

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Generated/AvTraceMessages.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ public static AvTraceDetails UpdateEffectiveValueStop
7070
}
7171

7272
/// <summary> Send a single trace output </summary>
73-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
73+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
7474
{
7575
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
7676
}
7777

7878
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
79-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
79+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
8080
{
8181
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
8282
}
@@ -161,13 +161,13 @@ public static AvTraceDetails UnableToFreezeAnimatedProperties
161161
}
162162

163163
/// <summary> Send a single trace output </summary>
164-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
164+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
165165
{
166166
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
167167
}
168168

169169
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
170-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
170+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
171171
{
172172
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
173173
}
@@ -225,13 +225,13 @@ public static AvTraceDetails UnregisterName
225225
}
226226

227227
/// <summary> Send a single trace output </summary>
228-
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params Span<object> parameters)
228+
public static void Trace(TraceEventType type, AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
229229
{
230230
_avTrace.Trace(type, traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
231231
}
232232

233233
/// <summary> Send a singleton "activity" trace (really, this sends the same trace as both a Start and a Stop) </summary>
234-
public static void TraceActivityItem(AvTraceDetails traceDetails, params Span<object> parameters)
234+
public static void TraceActivityItem(AvTraceDetails traceDetails, params ReadOnlySpan<object> parameters)
235235
{
236236
_avTrace.TraceStartStop(traceDetails.Id, traceDetails.Message, traceDetails.Labels, parameters);
237237
}

0 commit comments

Comments
 (0)