Skip to content

Commit 188b391

Browse files
frobtechCQ Bot
authored andcommitted
[symbolizer-markup] Avoid nonstandard dependencies
Standard C++20 is enough for this. Change-Id: I1c503443430245c9c673111d0d10ea6b591d9aca Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1152195 Reviewed-by: Joshua Seaton <[email protected]> Fuchsia-Auto-Submit: Roland McGrath <[email protected]> Commit-Queue: Auto-Submit <[email protected]>
1 parent 15e759a commit 188b391

File tree

7 files changed

+19
-21
lines changed

7 files changed

+19
-21
lines changed

sdk/lib/dl/test/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ test("dl-unittests") {
4242
deps += [
4343
":dl-unittest.deps",
4444
"..:runtime",
45+
"//sdk/lib/fit",
4546
"//sdk/lib/ld/testing",
4647
"//src/lib/elfldltl/testing",
4748
]

sdk/lib/dl/test/dl-impl-tests.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#ifndef LIB_DL_TEST_DL_IMPL_TESTS_H_
66
#define LIB_DL_TEST_DL_IMPL_TESTS_H_
77

8+
#include <lib/fit/defer.h>
89
#include <lib/stdcompat/functional.h>
910

1011
#include "../runtime-dynamic-linker.h"

sdk/lib/dl/test/dl-system-tests.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "dl-system-tests.h"
66

77
#include <dlfcn.h>
8+
#include <lib/fit/defer.h>
89

910
#include <cstring>
1011

src/lib/symbolizer-markup/BUILD.gn

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@ library_headers("headers") {
1010
"lib/symbolizer-markup/line-buffered-sink.h",
1111
"lib/symbolizer-markup/writer.h",
1212
]
13-
14-
public_deps = [
15-
"//sdk/lib/fit",
16-
"//sdk/lib/stdcompat",
17-
]
18-
if (!is_fuchsia) {
19-
public_deps += [ "//zircon/system/public" ]
20-
}
2113
}
2214

2315
source_set("symbolizer-markup") {

src/lib/symbolizer-markup/include/lib/symbolizer-markup/line-buffered-sink.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
#ifndef SRC_LIB_SYMBOLIZER_MARKUP_INCLUDE_LIB_SYMBOLIZER_MARKUP_LINE_BUFFERED_SINK_H_
66
#define SRC_LIB_SYMBOLIZER_MARKUP_INCLUDE_LIB_SYMBOLIZER_MARKUP_LINE_BUFFERED_SINK_H_
77

8-
#include <lib/stdcompat/span.h>
9-
108
#include <array>
119
#include <cassert>
10+
#include <span>
1211
#include <string_view>
1312

1413
namespace symbolizer_markup {
@@ -40,7 +39,7 @@ struct LineBuffered {
4039
constexpr explicit Sink(LineSink line_sink) : line_sink_{std::move(line_sink)} {}
4140

4241
void operator()(std::string_view str) {
43-
cpp20::span left = cpp20::span{buffer_}.subspan(used_);
42+
std::span left = std::span{buffer_}.subspan(used_);
4443
assert(!left.empty()); // Previous call should have flushed if full.
4544
while (!str.empty()) {
4645
size_t n = str.copy(left.data(), left.size());

src/lib/symbolizer-markup/include/lib/symbolizer-markup/writer.h

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
#ifndef SRC_LIB_SYMBOLIZER_MARKUP_INCLUDE_LIB_SYMBOLIZER_MARKUP_WRITER_H_
66
#define SRC_LIB_SYMBOLIZER_MARKUP_INCLUDE_LIB_SYMBOLIZER_MARKUP_WRITER_H_
77

8-
#include <lib/fit/defer.h>
9-
#include <lib/stdcompat/span.h>
10-
#include <zircon/assert.h>
11-
8+
#include <cassert>
129
#include <climits>
1310
#include <cstddef>
1411
#include <cstdint>
1512
#include <initializer_list>
1613
#include <limits>
14+
#include <span>
1715
#include <string_view>
1816
#include <type_traits>
1917
#include <utility>
@@ -82,12 +80,17 @@ class Writer {
8280
auto ChangeColor(Color color, bool bold = false) {
8381
using namespace std::string_view_literals;
8482

83+
struct ResetColor {
84+
~ResetColor() { writer.Literal("\033[0m"sv); }
85+
Writer& writer;
86+
};
87+
8588
Literal("\033["sv).template DecimalDigits(static_cast<unsigned int>(color)).Literal('m');
8689
if (bold) {
8790
Literal("\033[1m"sv);
8891
}
8992

90-
return fit::defer([this]() { Literal("\033[0m"sv); });
93+
return ResetColor{*this};
9194
}
9295

9396
//
@@ -155,7 +158,7 @@ class Writer {
155158
// Emits the markup for a given ELF module.
156159
//
157160
// {{{module:$id:$name:elf:$build_id}}}
158-
Writer& ElfModule(unsigned int id, std::string_view name, cpp20::span<const std::byte> build_id) {
161+
Writer& ElfModule(unsigned int id, std::string_view name, std::span<const std::byte> build_id) {
159162
return BeginElement(kModule)
160163
.DecimalField(id)
161164
.Field(name)
@@ -170,7 +173,7 @@ class Writer {
170173
// {{mmap:$start:$size:load:$module_id:$perms:$static_start}}
171174
Writer& LoadImageMmap(uintptr_t start, size_t size, unsigned int module_id,
172175
const MemoryPermissions& perms, uint64_t static_start) {
173-
ZX_ASSERT(perms.read || perms.write || perms.execute);
176+
assert(perms.read || perms.write || perms.execute);
174177
char perm_str[3];
175178
size_t perm_size = 0;
176179
if (perms.read) {
@@ -309,7 +312,7 @@ class Writer {
309312
return Separator().HexDigits(n);
310313
}
311314

312-
Writer& HexField(cpp20::span<const std::byte> bytes) {
315+
Writer& HexField(std::span<const std::byte> bytes) {
313316
Separator();
314317
for (const std::byte byte : bytes) {
315318
const uint8_t b = static_cast<uint8_t>(byte);

src/lib/symbolizer-markup/unittests.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <lib/symbolizer-markup/line-buffered-sink.h>
66
#include <lib/symbolizer-markup/writer.h>
77

8+
#include <span>
89
#include <string>
910
#include <string_view>
1011

@@ -235,9 +236,9 @@ TEST(SymbolizerMarkupTests, Module) {
235236
std::string markup;
236237
symbolizer_markup::Writer writer(Sink{markup});
237238

238-
writer.ElfModule(5, "moduleA", cpp20::as_bytes(cpp20::span{kBuildIdA}))
239+
writer.ElfModule(5, "moduleA", std::as_bytes(std::span{kBuildIdA}))
239240
.Newline()
240-
.ElfModule(10, "moduleB", cpp20::as_bytes(cpp20::span{kBuildIdB}));
241+
.ElfModule(10, "moduleB", std::as_bytes(std::span{kBuildIdB}));
241242

242243
constexpr std::string_view kExpected = R"""({{{module:5:moduleA:elf:545975394d10a07d}}}
243244
{{{module:10:moduleB:elf:ba43d6f6911e8723}}})""";

0 commit comments

Comments
 (0)