Skip to content

Commit f80ac5f

Browse files
authored
[fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (flutter#9289)
1 parent 4fc95eb commit f80ac5f

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

fml/trace_event.h

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@
1515
#endif // !defined(FUCHSIA_SDK)
1616
#endif // defined(OS_FUCHSIA)
1717

18+
#if !defined(OS_FUCHSIA) || defined(FUCHSIA_SDK)
19+
20+
#define TRACE_DURATION(args, ...)
21+
#define TRACE_ASYNC_BEGIN(args, ...)
22+
#define TRACE_ASYNC_END(args, ...)
23+
#define TRACE_INSTANT(a, b, c)
24+
#define TRACE_SCOPE_THREAD 0
25+
26+
#endif // !defined(OS_FUCHSIA) ||defined(FUCHSIA_SDK)
27+
1828
#include <cstddef>
1929
#include <cstdint>
2030
#include <string>
@@ -33,45 +43,57 @@
3343

3444
// This macro has the FML_ prefix so that it does not collide with the macros
3545
// from trace/event.h on Fuchsia.
46+
// TODO(DNO-448): This is disabled because Fuchsia counter id json parsing
47+
// only handles ints whereas this can produce ints or strings.
3648
#define FML_TRACE_COUNTER(category_group, name, counter_id, arg1, ...) \
3749
::fml::tracing::TraceCounter((category_group), (name), (counter_id), (arg1), \
3850
__VA_ARGS__);
3951

4052
#define FML_TRACE_EVENT(category_group, name, ...) \
53+
TRACE_DURATION(category_group, name); \
4154
::fml::tracing::TraceEvent((category_group), (name), __VA_ARGS__); \
4255
__FML__AUTO_TRACE_END(name)
4356

4457
#define FML_TRACE_EVENT0(category_group, name) \
58+
TRACE_DURATION(category_group, name); \
4559
::fml::tracing::TraceEvent0(category_group, name); \
4660
__FML__AUTO_TRACE_END(name)
4761

4862
#define FML_TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
63+
TRACE_DURATION(category_group, name, arg1_name, arg1_val); \
4964
::fml::tracing::TraceEvent1(category_group, name, arg1_name, arg1_val); \
5065
__FML__AUTO_TRACE_END(name)
5166

5267
#define FML_TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, \
5368
arg2_val) \
69+
TRACE_DURATION(category_group, name, arg1_name, arg1_val, arg2_name, \
70+
arg2_val); \
5471
::fml::tracing::TraceEvent2(category_group, name, arg1_name, arg1_val, \
5572
arg2_name, arg2_val); \
5673
__FML__AUTO_TRACE_END(name)
5774

5875
#define FML_TRACE_EVENT_ASYNC_BEGIN0(category_group, name, id) \
76+
TRACE_ASYNC_BEGIN(category_group, name, id); \
5977
::fml::tracing::TraceEventAsyncBegin0(category_group, name, id);
6078

6179
#define FML_TRACE_EVENT_ASYNC_END0(category_group, name, id) \
80+
TRACE_ASYNC_END(category_group, name, id); \
6281
::fml::tracing::TraceEventAsyncEnd0(category_group, name, id);
6382

6483
#define FML_TRACE_EVENT_ASYNC_BEGIN1(category_group, name, id, arg1_name, \
6584
arg1_val) \
85+
TRACE_ASYNC_BEGIN(category_group, name, id, arg1_name, arg1_val); \
6686
::fml::tracing::TraceEventAsyncBegin1(category_group, name, id, arg1_name, \
6787
arg1_val);
6888

6989
#define FML_TRACE_EVENT_ASYNC_END1(category_group, name, id, arg1_name, \
7090
arg1_val) \
91+
TRACE_ASYNC_END(category_group, name, id, arg1_name, arg1_val); \
7192
::fml::tracing::TraceEventAsyncEnd1(category_group, name, id, arg1_name, \
7293
arg1_val);
7394

74-
#define FML_TRACE_EVENT_INSTANT0(category_group, name) \
95+
#define FML_TRACE_EVENT_INSTANT0(category_group, name) \
96+
TRACE_INSTANT(category_group, name, TRACE_SCOPE_THREAD); \
7597
::fml::tracing::TraceEventInstant0(category_group, name);
7698

7799
#define FML_TRACE_FLOW_BEGIN(category, name, id) \

0 commit comments

Comments
 (0)