Skip to content

Commit b107214

Browse files
schuayCommit Bot
authored andcommitted
[code-serializer] Handlify in CodeSerializer::Deserialize
This section potentially contains allocations and thus gc, all object references should be handlified. Bug: v8:9333 Change-Id: I5814e66e8b9b75a8bd952afecae7a3a27b42a642 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1647695 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#62012}
1 parent ea04708 commit b107214

1 file changed

Lines changed: 18 additions & 16 deletions

File tree

src/snapshot/code-serializer.cc

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
301301
PrintF("[Deserializing from %d bytes took %0.3f ms]\n", length, ms);
302302
}
303303

304-
bool log_code_creation =
304+
const bool log_code_creation =
305305
isolate->logger()->is_listening_to_code_events() ||
306306
isolate->is_profiling() ||
307307
isolate->code_event_dispatcher()->IsListeningToCodeEvents();
@@ -313,29 +313,31 @@ MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
313313
#endif // V8_TARGET_ARCH_ARM
314314

315315
if (log_code_creation || FLAG_log_function_events) {
316-
String name = ReadOnlyRoots(isolate).empty_string();
317-
Script script = Script::cast(result->script());
318-
Handle<Script> script_handle(script, isolate);
319-
if (script.name().IsString()) name = String::cast(script.name());
320-
Handle<String> name_handle(name, isolate);
316+
Handle<Script> script(Script::cast(result->script()), isolate);
317+
Handle<String> name(script->name().IsString()
318+
? String::cast(script->name())
319+
: ReadOnlyRoots(isolate).empty_string(),
320+
isolate);
321+
321322
if (FLAG_log_function_events) {
322-
LOG(isolate, FunctionEvent("deserialize", script.id(),
323-
timer.Elapsed().InMillisecondsF(),
324-
result->StartPosition(), result->EndPosition(),
325-
*name_handle));
323+
LOG(isolate,
324+
FunctionEvent("deserialize", script->id(),
325+
timer.Elapsed().InMillisecondsF(),
326+
result->StartPosition(), result->EndPosition(), *name));
326327
}
327328
if (log_code_creation) {
328-
Script::InitLineEnds(Handle<Script>(script, isolate));
329+
Script::InitLineEnds(script);
330+
329331
DisallowHeapAllocation no_gc;
330-
SharedFunctionInfo::ScriptIterator iter(isolate, script);
332+
SharedFunctionInfo::ScriptIterator iter(isolate, *script);
331333
for (i::SharedFunctionInfo info = iter.Next(); !info.is_null();
332334
info = iter.Next()) {
333335
if (info.is_compiled()) {
334-
int line_num = script.GetLineNumber(info.StartPosition()) + 1;
335-
int column_num = script.GetColumnNumber(info.StartPosition()) + 1;
336+
int line_num = script->GetLineNumber(info.StartPosition()) + 1;
337+
int column_num = script->GetColumnNumber(info.StartPosition()) + 1;
336338
PROFILE(isolate, CodeCreateEvent(CodeEventListener::SCRIPT_TAG,
337-
info.abstract_code(), info,
338-
*name_handle, line_num, column_num));
339+
info.abstract_code(), info, *name,
340+
line_num, column_num));
339341
}
340342
}
341343
}

0 commit comments

Comments
 (0)