| Index: src/codegen.cc
|
| diff --git a/src/codegen.cc b/src/codegen.cc
|
| index cc5495bc1b91612ca409d9eca06fd654ac3d3e17..0b130e987515589b1cd93691627de885eeb629ab 100644
|
| --- a/src/codegen.cc
|
| +++ b/src/codegen.cc
|
| @@ -121,16 +121,8 @@ void CodeGenerator::MakeCodePrologue(CompilationInfo* info, const char* kind) {
|
| }
|
|
|
| if (FLAG_trace_codegen || print_source || print_ast) {
|
| - PrintF("[generating %s code for %s function: ", kind, ftype);
|
| - if (info->IsStub()) {
|
| - const char* name =
|
| - CodeStub::MajorName(info->code_stub()->MajorKey(), true);
|
| - PrintF("%s", name == NULL ? "<unknown>" : name);
|
| - } else {
|
| - AllowDeferredHandleDereference allow_deference_for_trace;
|
| - PrintF("%s", info->literal()->debug_name()->ToCString().get());
|
| - }
|
| - PrintF("]\n");
|
| + base::SmartArrayPointer<char> name = info->GetDebugName();
|
| + PrintF("[generating %s code for %s function: %s]", kind, ftype, name.get());
|
| }
|
|
|
| #ifdef DEBUG
|
| @@ -153,11 +145,13 @@ Handle<Code> CodeGenerator::MakeCodeEpilogue(MacroAssembler* masm,
|
| Isolate* isolate = info->isolate();
|
|
|
| Code::Flags flags =
|
| - info->code_stub() != nullptr
|
| - ? Code::ComputeFlags(info->code_stub()->GetCodeKind(),
|
| - info->code_stub()->GetICState(),
|
| - info->code_stub()->GetExtraICState(),
|
| - info->code_stub()->GetStubType())
|
| + info->IsStub()
|
| + ? info->code_stub()
|
| + ? Code::ComputeFlags(info->code_stub()->GetCodeKind(),
|
| + info->code_stub()->GetICState(),
|
| + info->code_stub()->GetExtraICState(),
|
| + info->code_stub()->GetStubType())
|
| + : Code::ComputeFlags(Code::STUB)
|
| : Code::ComputeFlags(info->IsOptimizing() ? Code::OPTIMIZED_FUNCTION
|
| : Code::FUNCTION);
|
|
|
| @@ -189,16 +183,7 @@ void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
|
| (info->IsStub() && FLAG_print_code_stubs) ||
|
| (info->IsOptimizing() && FLAG_print_opt_code));
|
| if (print_code) {
|
| - const char* debug_name;
|
| - base::SmartArrayPointer<char> debug_name_holder;
|
| - if (info->IsStub()) {
|
| - CodeStub::Major major_key = info->code_stub()->MajorKey();
|
| - debug_name = CodeStub::MajorName(major_key, false);
|
| - } else {
|
| - debug_name_holder = info->literal()->debug_name()->ToCString();
|
| - debug_name = debug_name_holder.get();
|
| - }
|
| -
|
| + base::SmartArrayPointer<char> debug_name = info->GetDebugName();
|
| CodeTracer::Scope tracing_scope(info->isolate()->GetCodeTracer());
|
| OFStream os(tracing_scope.file());
|
|
|
| @@ -228,7 +213,7 @@ void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
|
| if (info->IsOptimizing()) {
|
| if (FLAG_print_unopt_code && info->parse_info()) {
|
| os << "--- Unoptimized code ---\n";
|
| - info->closure()->shared()->code()->Disassemble(debug_name, os);
|
| + info->closure()->shared()->code()->Disassemble(debug_name.get(), os);
|
| }
|
| os << "--- Optimized code ---\n"
|
| << "optimization_id = " << info->optimization_id() << "\n";
|
| @@ -239,7 +224,7 @@ void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
|
| FunctionLiteral* literal = info->literal();
|
| os << "source_position = " << literal->start_position() << "\n";
|
| }
|
| - code->Disassemble(debug_name, os);
|
| + code->Disassemble(debug_name.get(), os);
|
| os << "--- End code ---\n";
|
| }
|
| #endif // ENABLE_DISASSEMBLER
|
|
|