GDBJIT: Use runtime_zone to fix --gdbjit_full

R=yangguo@chromium.org
BUG=v8:2608

Review URL: https://codereview.chromium.org/13813014
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mstarzinger@chromium.org 2013-04-10 08:10:51 +00:00
parent 96220f984f
commit 4623e71123

View File

@ -1019,9 +1019,9 @@ class CodeDescription BASE_EMBEDDED {
#if defined(__ELF) #if defined(__ELF)
static void CreateSymbolsTable(CodeDescription* desc, static void CreateSymbolsTable(CodeDescription* desc,
Zone* zone,
ELF* elf, ELF* elf,
int text_section_index) { int text_section_index) {
Zone* zone = desc->info()->zone();
ELFSymbolTable* symtab = new(zone) ELFSymbolTable(".symtab", zone); ELFSymbolTable* symtab = new(zone) ELFSymbolTable(".symtab", zone);
ELFStringTable* strtab = new(zone) ELFStringTable(".strtab"); ELFStringTable* strtab = new(zone) ELFStringTable(".strtab");
@ -1789,8 +1789,9 @@ bool UnwindInfoSection::WriteBodyInternal(Writer* w) {
#endif // V8_TARGET_ARCH_X64 #endif // V8_TARGET_ARCH_X64
static void CreateDWARFSections(CodeDescription* desc, DebugObject* obj) { static void CreateDWARFSections(CodeDescription* desc,
Zone* zone = desc->info()->zone(); Zone* zone,
DebugObject* obj) {
if (desc->IsLineInfoAvailable()) { if (desc->IsLineInfoAvailable()) {
obj->AddSection(new(zone) DebugInfoSection(desc), zone); obj->AddSection(new(zone) DebugInfoSection(desc), zone);
obj->AddSection(new(zone) DebugAbbrevSection(desc), zone); obj->AddSection(new(zone) DebugAbbrevSection(desc), zone);
@ -1915,8 +1916,7 @@ static void UnregisterCodeEntry(JITCodeEntry* entry) {
} }
static JITCodeEntry* CreateELFObject(CodeDescription* desc) { static JITCodeEntry* CreateELFObject(CodeDescription* desc, Zone* zone) {
Zone* zone = desc->info()->zone();
ZoneScope zone_scope(zone, DELETE_ON_EXIT); ZoneScope zone_scope(zone, DELETE_ON_EXIT);
#ifdef __MACH_O #ifdef __MACH_O
MachO mach_o; MachO mach_o;
@ -1944,9 +1944,9 @@ static JITCodeEntry* CreateELFObject(CodeDescription* desc) {
ELFSection::FLAG_ALLOC | ELFSection::FLAG_EXEC), ELFSection::FLAG_ALLOC | ELFSection::FLAG_EXEC),
zone); zone);
CreateSymbolsTable(desc, &elf, text_section_index); CreateSymbolsTable(desc, zone, &elf, text_section_index);
CreateDWARFSections(desc, &elf); CreateDWARFSections(desc, zone, &elf);
elf.Write(&w); elf.Write(&w);
#endif #endif
@ -2083,7 +2083,8 @@ void GDBJITInterface::AddCode(const char* name,
} }
AddUnwindInfo(&code_desc); AddUnwindInfo(&code_desc);
JITCodeEntry* entry = CreateELFObject(&code_desc); Zone* zone = code->GetIsolate()->runtime_zone();
JITCodeEntry* entry = CreateELFObject(&code_desc, zone);
ASSERT(!IsLineInfoTagged(entry)); ASSERT(!IsLineInfoTagged(entry));
delete lineinfo; delete lineinfo;