summaryrefslogtreecommitdiff
path: root/deps/v8/src/snapshot
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2019-04-26 19:28:16 +0800
committerAnna Henningsen <anna@addaleax.net>2019-04-29 01:27:52 +0200
commit377939eef847d2475768c0db0b3eb1a699f545f1 (patch)
tree3b93778016326553bfb560804ffecc888afa3700 /deps/v8/src/snapshot
parent2c7b5332d6be2e729a5699dab33481864e13d08e (diff)
downloadandroid-node-v8-377939eef847d2475768c0db0b3eb1a699f545f1.tar.gz
android-node-v8-377939eef847d2475768c0db0b3eb1a699f545f1.tar.bz2
android-node-v8-377939eef847d2475768c0db0b3eb1a699f545f1.zip
deps: V8: cherry-pick 5d0cf6b
Original commit message: [snapshot] Use Handle to track name in `CodeSerializer::Deserialize` The `Script::InitLineEnds(Handle<Script>(script, isolate));` line may lead to objects being moved around on the heap, so it’s necessary to use a `Handle` to track that. This was causing crashes in Node.js in Debug mode when using the code cache in combination with the CPU profiler. Refs: https://github.com/nodejs/node/issues/27307 Change-Id: I392b4c00c6ebad44753f87fcbf2e3278ea7799a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1575698 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61036} Refs: https://github.com/v8/v8/commit/5d0cf6bcd58aa63c86f2664c801538c4e731170b PR-URL: https://github.com/nodejs/node/pull/27423 Fixes: https://github.com/nodejs/node/issues/27307 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'deps/v8/src/snapshot')
-rw-r--r--deps/v8/src/snapshot/code-serializer.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/deps/v8/src/snapshot/code-serializer.cc b/deps/v8/src/snapshot/code-serializer.cc
index df728fcfc9..f72446564f 100644
--- a/deps/v8/src/snapshot/code-serializer.cc
+++ b/deps/v8/src/snapshot/code-serializer.cc
@@ -258,11 +258,12 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
Script script = Script::cast(result->script());
Handle<Script> script_handle(script, isolate);
if (script->name()->IsString()) name = String::cast(script->name());
+ Handle<String> name_handle(name, isolate);
if (FLAG_log_function_events) {
- LOG(isolate,
- FunctionEvent("deserialize", script->id(),
- timer.Elapsed().InMillisecondsF(),
- result->StartPosition(), result->EndPosition(), name));
+ LOG(isolate, FunctionEvent("deserialize", script->id(),
+ timer.Elapsed().InMillisecondsF(),
+ result->StartPosition(), result->EndPosition(),
+ *name_handle));
}
if (log_code_creation) {
Script::InitLineEnds(Handle<Script>(script, isolate));
@@ -274,8 +275,8 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
int line_num = script->GetLineNumber(info->StartPosition()) + 1;
int column_num = script->GetColumnNumber(info->StartPosition()) + 1;
PROFILE(isolate, CodeCreateEvent(CodeEventListener::SCRIPT_TAG,
- info->abstract_code(), info, name,
- line_num, column_num));
+ info->abstract_code(), info,
+ *name_handle, line_num, column_num));
}
}
}