@@ -89,18 +89,14 @@ class HttpTraceContext : public context::propagation::TextMapPropagator
8989 static constexpr uint8_t kInvalidVersion = 0xFF ;
9090 static constexpr uint8_t kDefaultAssumedVersion = 0x00 ;
9191
92- static bool IsValidVersion (nostd::string_view version_hex )
92+ static bool IsValidVersion (uint8_t version_binary )
9393 {
94- uint8_t version;
95- detail::HexToBinary (version_hex, &version, sizeof (version));
96- return version != kInvalidVersion ;
94+ return version_binary != kInvalidVersion ;
9795 }
9896
99- static bool IsHigherVersion (nostd::string_view version_hex )
97+ static bool IsHigherVersion (uint8_t version_binary )
10098 {
101- uint8_t version;
102- detail::HexToBinary (version_hex, &version, sizeof (version));
103- return version > kDefaultAssumedVersion ;
99+ return version_binary > kDefaultAssumedVersion ;
104100 }
105101
106102 static void InjectImpl (context::propagation::TextMapCarrier &carrier,
@@ -153,17 +149,20 @@ class HttpTraceContext : public context::propagation::TextMapPropagator
153149 return SpanContext::GetInvalid ();
154150 }
155151
156- if (!IsValidVersion (version_hex))
152+ // hex is valid, convert it to binary
153+ uint8_t version_binary;
154+ detail::HexToBinary (version_hex, &version_binary, sizeof (version_binary));
155+ if (!IsValidVersion (version_binary))
157156 {
158157 return SpanContext::GetInvalid ();
159158 }
160159
161- if (IsHigherVersion (version_hex ) && trace_parent.size () < kTraceParentSize )
160+ if (IsHigherVersion (version_binary ) && trace_parent.size () < kTraceParentSize )
162161 {
163162 return SpanContext::GetInvalid ();
164163 }
165164
166- if (!IsHigherVersion (version_hex ) && trace_parent.size () != kTraceParentSize )
165+ if (!IsHigherVersion (version_binary ) && trace_parent.size () != kTraceParentSize )
167166 {
168167 return SpanContext::GetInvalid ();
169168 }
0 commit comments