Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fixup! fixup! src: parse inspector profiles with simdjson
  • Loading branch information
joyeecheung committed Feb 21, 2024
commit 39e7c97f6d71c738a4c8dea317fd4c6943491359
14 changes: 7 additions & 7 deletions src/inspector_profiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ void V8ProfilerConnection::V8ProfilerSessionDelegate::SendMessageToFrontend(
return;
}

connection_->WriteProfile(result);
connection_->WriteProfile(&result);
connection_->RemoveProfileId(id);
}

Expand Down Expand Up @@ -215,9 +215,9 @@ std::string V8CoverageConnection::GetFilename() const {
}

std::optional<std::string_view> V8ProfilerConnection::GetProfile(
simdjson::ondemand::object& result) {
simdjson::ondemand::object* result) {
simdjson::ondemand::object profile_object;
if (result["profile"].get_object().get(profile_object)) {
if ((*result)["profile"].get_object().get(profile_object)) {
fprintf(
stderr, "'profile' from %s profile result is not an Object\n", type());
return std::nullopt;
Expand All @@ -232,7 +232,7 @@ std::optional<std::string_view> V8ProfilerConnection::GetProfile(
return profile_raw;
}

void V8ProfilerConnection::WriteProfile(simdjson::ondemand::object& result) {
void V8ProfilerConnection::WriteProfile(simdjson::ondemand::object* result) {
// Generate the profile output from the subclass.
auto profile_opt = GetProfile(result);
if (!profile_opt.has_value()) {
Expand All @@ -254,7 +254,7 @@ void V8ProfilerConnection::WriteProfile(simdjson::ondemand::object& result) {
WriteResult(env_, path.c_str(), profile);
}

void V8CoverageConnection::WriteProfile(simdjson::ondemand::object& result) {
void V8CoverageConnection::WriteProfile(simdjson::ondemand::object* result) {
Isolate* isolate = env_->isolate();
HandleScope handle_scope(isolate);

Expand Down Expand Up @@ -350,9 +350,9 @@ void V8CoverageConnection::WriteProfile(simdjson::ondemand::object& result) {
}

std::optional<std::string_view> V8CoverageConnection::GetProfile(
simdjson::ondemand::object& result) {
simdjson::ondemand::object* result) {
std::string_view profile_raw;
if (result.raw_json().get(profile_raw)) {
if (result->raw_json().get(profile_raw)) {
fprintf(stderr,
"Cannot get raw string of the 'profile' field from %s profile\n",
type());
Expand Down
8 changes: 4 additions & 4 deletions src/inspector_profiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ class V8ProfilerConnection {
// Return the profile object parsed from `message.result`,
// which will be then written as a JSON.
virtual std::optional<std::string_view> GetProfile(
simdjson::ondemand::object& result);
virtual void WriteProfile(simdjson::ondemand::object& result);
simdjson::ondemand::object* result);
virtual void WriteProfile(simdjson::ondemand::object* result);

bool HasProfileId(uint64_t id) const {
return profile_ids_.find(id) != profile_ids_.end();
Expand Down Expand Up @@ -95,8 +95,8 @@ class V8CoverageConnection : public V8ProfilerConnection {
std::string GetDirectory() const override;
std::string GetFilename() const override;
std::optional<std::string_view> GetProfile(
simdjson::ondemand::object& result) override;
void WriteProfile(simdjson::ondemand::object& result) override;
simdjson::ondemand::object* result) override;
void WriteProfile(simdjson::ondemand::object* result) override;
void WriteSourceMapCache();
void TakeCoverage();
void StopCoverage();
Expand Down