Skip to content

Commit eb6d7d7

Browse files
committed
refactor(logging): use span instead of data+size params
1 parent d73e32f commit eb6d7d7

File tree

5 files changed

+21
-15
lines changed

5 files changed

+21
-15
lines changed

src/quick-lint-js/debug/debug-server.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <quick-lint-js/json.h>
2323
#include <quick-lint-js/logging/trace-flusher.h>
2424
#include <quick-lint-js/logging/trace-writer.h>
25+
#include <quick-lint-js/port/span.h>
2526
#include <quick-lint-js/port/thread.h>
2627
#include <quick-lint-js/util/binary-writer.h>
2728
#include <quick-lint-js/util/instance-tracker.h>
@@ -43,12 +44,11 @@ class trace_flusher_websocket_backend final : public trace_flusher_backend {
4344
void trace_thread_end(trace_flusher_thread_index) override {}
4445

4546
void trace_thread_write_data(trace_flusher_thread_index thread_index,
46-
const std::byte *data,
47-
std::size_t size) override {
47+
span<const std::byte> data) override {
4848
std::lock_guard<mutex> lock(this->mutex_);
4949

5050
async_byte_queue &queue = this->thread_queues_[thread_index];
51-
queue.append_copy(data, size);
51+
queue.append_copy(data.data(), narrow_cast<std::size_t>(data.size()));
5252
queue.commit();
5353
server_->wake_up_server_thread();
5454
}

src/quick-lint-js/logging/trace-flusher-directory-backend.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <quick-lint-js/logging/log.h>
1515
#include <quick-lint-js/logging/trace-flusher.h>
1616
#include <quick-lint-js/logging/trace-metadata.h>
17+
#include <quick-lint-js/port/span.h>
1718
#include <string>
1819
#include <utility>
1920

@@ -50,16 +51,16 @@ void trace_flusher_directory_backend::trace_thread_end(
5051
}
5152

5253
void trace_flusher_directory_backend::trace_thread_write_data(
53-
trace_flusher_thread_index thread_index, const std::byte *data,
54-
std::size_t size) {
54+
trace_flusher_thread_index thread_index, span<const std::byte> data) {
5555
auto it = this->thread_files_.find(thread_index);
5656
if (it == this->thread_files_.end()) {
5757
// Opening the file failed. Don't write anything.
5858
return;
5959
}
6060
platform_file_ref file = it->second.ref();
6161

62-
auto write_result = file.write_full(data, size);
62+
auto write_result =
63+
file.write_full(data.data(), narrow_cast<std::size_t>(data.size()));
6364
if (!write_result.ok()) {
6465
QLJS_DEBUG_LOG("warning: failed to append to trace stream file: %s\n",
6566
write_result.error_to_string().c_str());

src/quick-lint-js/logging/trace-flusher.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <quick-lint-js/logging/trace-flusher.h>
2121
#include <quick-lint-js/logging/trace-writer.h>
2222
#include <quick-lint-js/port/process.h>
23+
#include <quick-lint-js/port/span.h>
2324
#include <quick-lint-js/port/thread.h>
2425
#include <quick-lint-js/port/vector-erase.h>
2526
#include <quick-lint-js/util/algorithm.h>
@@ -218,7 +219,9 @@ void trace_flusher::flush_one_thread_sync(std::unique_lock<mutex>&,
218219
t.stream_queue.take_committed(
219220
[&](const std::byte* data, std::size_t size) {
220221
for (trace_flusher_backend* backend : this->backends_) {
221-
backend->trace_thread_write_data(t.thread_index, data, size);
222+
backend->trace_thread_write_data(
223+
t.thread_index,
224+
span<const std::byte>(data, narrow_cast<span_size>(size)));
222225
}
223226
},
224227
[] {});
@@ -255,7 +258,9 @@ void trace_flusher::write_thread_header_to_backend(
255258
temp_queue.commit();
256259
temp_queue.take_committed(
257260
[&](const std::byte* data, std::size_t size) {
258-
backend->trace_thread_write_data(t.thread_index, data, size);
261+
backend->trace_thread_write_data(
262+
t.thread_index,
263+
span<const std::byte>(data, narrow_cast<span_size>(size)));
259264
},
260265
[] {});
261266
}

src/quick-lint-js/logging/trace-flusher.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <quick-lint-js/container/hash-map.h>
1616
#include <quick-lint-js/container/result.h>
1717
#include <quick-lint-js/io/file.h>
18+
#include <quick-lint-js/port/span.h>
1819
#include <quick-lint-js/port/thread.h>
1920
#include <string>
2021
#include <vector>
@@ -57,8 +58,7 @@ class trace_flusher_backend {
5758
//
5859
// Called from any thread.
5960
virtual void trace_thread_write_data(trace_flusher_thread_index thread_index,
60-
const std::byte* data,
61-
std::size_t size) = 0;
61+
span<const std::byte> data) = 0;
6262
};
6363

6464
class trace_flusher_directory_backend final : public trace_flusher_backend {
@@ -68,8 +68,7 @@ class trace_flusher_directory_backend final : public trace_flusher_backend {
6868
void trace_thread_begin(trace_flusher_thread_index thread_index) override;
6969
void trace_thread_end(trace_flusher_thread_index thread_index) override;
7070
void trace_thread_write_data(trace_flusher_thread_index thread_index,
71-
const std::byte* data,
72-
std::size_t size) override;
71+
span<const std::byte> data) override;
7372

7473
// Creates a 'metadata' file in the given directory.
7574
//

test/test-trace-flusher.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <quick-lint-js/port/char8.h>
2323
#include <quick-lint-js/port/have.h>
2424
#include <quick-lint-js/port/process.h>
25+
#include <quick-lint-js/port/span.h>
2526
#include <quick-lint-js/port/thread.h>
2627
#include <quick-lint-js/port/warning.h>
2728
#include <quick-lint-js/trace-stream-reader-mock.h>
@@ -120,15 +121,15 @@ class spy_trace_flusher_backend final : public trace_flusher_backend {
120121
}
121122

122123
void trace_thread_write_data(trace_flusher_thread_index thread_index,
123-
const std::byte* data,
124-
std::size_t size) override {
124+
span<const std::byte> data) override {
125125
std::lock_guard<mutex> lock(this->mutex_);
126126

127127
thread_state& t = this->thread_states[thread_index];
128128
EXPECT_GE(t.begin_calls, 1);
129129
EXPECT_EQ(t.end_calls, 0);
130130

131-
t.written_data.append(reinterpret_cast<const char*>(data), size);
131+
t.written_data.append(reinterpret_cast<const char*>(data.data()),
132+
narrow_cast<std::size_t>(data.size()));
132133
t.write_calls += 1;
133134
}
134135

0 commit comments

Comments
 (0)