| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 1417 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1428     if (new_buffer_size > kMaximalBufferSize) { | 1428     if (new_buffer_size > kMaximalBufferSize) { | 
| 1429       V8::FatalProcessOutOfMemory("RelocInfoBuffer::GrowBuffer"); | 1429       V8::FatalProcessOutOfMemory("RelocInfoBuffer::GrowBuffer"); | 
| 1430     } | 1430     } | 
| 1431 | 1431 | 
| 1432     // Set up new buffer. | 1432     // Set up new buffer. | 
| 1433     byte* new_buffer = NewArray<byte>(new_buffer_size); | 1433     byte* new_buffer = NewArray<byte>(new_buffer_size); | 
| 1434 | 1434 | 
| 1435     // Copy the data. | 1435     // Copy the data. | 
| 1436     int curently_used_size = | 1436     int curently_used_size = | 
| 1437         static_cast<int>(buffer_ + buffer_size_ - reloc_info_writer_.pos()); | 1437         static_cast<int>(buffer_ + buffer_size_ - reloc_info_writer_.pos()); | 
| 1438     memmove(new_buffer + new_buffer_size - curently_used_size, | 1438     OS::MemMove(new_buffer + new_buffer_size - curently_used_size, | 
| 1439             reloc_info_writer_.pos(), curently_used_size); | 1439                 reloc_info_writer_.pos(), curently_used_size); | 
| 1440 | 1440 | 
| 1441     reloc_info_writer_.Reposition( | 1441     reloc_info_writer_.Reposition( | 
| 1442         new_buffer + new_buffer_size - curently_used_size, | 1442         new_buffer + new_buffer_size - curently_used_size, | 
| 1443         reloc_info_writer_.last_pc()); | 1443         reloc_info_writer_.last_pc()); | 
| 1444 | 1444 | 
| 1445     DeleteArray(buffer_); | 1445     DeleteArray(buffer_); | 
| 1446     buffer_ = new_buffer; | 1446     buffer_ = new_buffer; | 
| 1447     buffer_size_ = new_buffer_size; | 1447     buffer_size_ = new_buffer_size; | 
| 1448   } | 1448   } | 
| 1449 | 1449 | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1481       if (RelocInfo::IsRealRelocMode(rinfo->rmode())) { | 1481       if (RelocInfo::IsRealRelocMode(rinfo->rmode())) { | 
| 1482         buffer_writer.Write(it.rinfo()); | 1482         buffer_writer.Write(it.rinfo()); | 
| 1483       } | 1483       } | 
| 1484     } | 1484     } | 
| 1485   } | 1485   } | 
| 1486 | 1486 | 
| 1487   Vector<byte> buffer = buffer_writer.GetResult(); | 1487   Vector<byte> buffer = buffer_writer.GetResult(); | 
| 1488 | 1488 | 
| 1489   if (buffer.length() == code->relocation_size()) { | 1489   if (buffer.length() == code->relocation_size()) { | 
| 1490     // Simply patch relocation area of code. | 1490     // Simply patch relocation area of code. | 
| 1491     memcpy(code->relocation_start(), buffer.start(), buffer.length()); | 1491     OS::MemCopy(code->relocation_start(), buffer.start(), buffer.length()); | 
| 1492     return code; | 1492     return code; | 
| 1493   } else { | 1493   } else { | 
| 1494     // Relocation info section now has different size. We cannot simply | 1494     // Relocation info section now has different size. We cannot simply | 
| 1495     // rewrite it inside code object. Instead we have to create a new | 1495     // rewrite it inside code object. Instead we have to create a new | 
| 1496     // code object. | 1496     // code object. | 
| 1497     Handle<Code> result(FACTORY->CopyCode(code, buffer)); | 1497     Handle<Code> result(FACTORY->CopyCode(code, buffer)); | 
| 1498     return result; | 1498     return result; | 
| 1499   } | 1499   } | 
| 1500 } | 1500 } | 
| 1501 | 1501 | 
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1754           Smi::cast(Memory::Object_at(padding_pointer))->value(); | 1754           Smi::cast(Memory::Object_at(padding_pointer))->value(); | 
| 1755       if (padding_counter * kPointerSize < shortage_bytes) { | 1755       if (padding_counter * kPointerSize < shortage_bytes) { | 
| 1756         return "Not enough space for frame dropper frame " | 1756         return "Not enough space for frame dropper frame " | 
| 1757             "(even with padding frame)"; | 1757             "(even with padding frame)"; | 
| 1758       } | 1758       } | 
| 1759       Memory::Object_at(padding_pointer) = | 1759       Memory::Object_at(padding_pointer) = | 
| 1760           Smi::FromInt(padding_counter - shortage_bytes / kPointerSize); | 1760           Smi::FromInt(padding_counter - shortage_bytes / kPointerSize); | 
| 1761 | 1761 | 
| 1762       StackFrame* pre_pre_frame = frames[top_frame_index - 2]; | 1762       StackFrame* pre_pre_frame = frames[top_frame_index - 2]; | 
| 1763 | 1763 | 
| 1764       memmove(padding_start + kPointerSize - shortage_bytes, | 1764       OS::MemMove(padding_start + kPointerSize - shortage_bytes, | 
| 1765           padding_start + kPointerSize, | 1765                   padding_start + kPointerSize, | 
| 1766           Debug::FramePaddingLayout::kFrameBaseSize * kPointerSize); | 1766                   Debug::FramePaddingLayout::kFrameBaseSize * kPointerSize); | 
| 1767 | 1767 | 
| 1768       pre_top_frame->UpdateFp(pre_top_frame->fp() - shortage_bytes); | 1768       pre_top_frame->UpdateFp(pre_top_frame->fp() - shortage_bytes); | 
| 1769       pre_pre_frame->SetCallerFp(pre_top_frame->fp()); | 1769       pre_pre_frame->SetCallerFp(pre_top_frame->fp()); | 
| 1770       unused_stack_top -= shortage_bytes; | 1770       unused_stack_top -= shortage_bytes; | 
| 1771 | 1771 | 
| 1772       STATIC_ASSERT(sizeof(Address) == kPointerSize); | 1772       STATIC_ASSERT(sizeof(Address) == kPointerSize); | 
| 1773       top_frame_pc_address -= shortage_bytes / kPointerSize; | 1773       top_frame_pc_address -= shortage_bytes / kPointerSize; | 
| 1774     } else { | 1774     } else { | 
| 1775       return "Not enough space for frame dropper frame"; | 1775       return "Not enough space for frame dropper frame"; | 
| 1776     } | 1776     } | 
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2119 | 2119 | 
| 2120 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { | 2120 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { | 
| 2121   return false; | 2121   return false; | 
| 2122 } | 2122 } | 
| 2123 | 2123 | 
| 2124 #endif  // ENABLE_DEBUGGER_SUPPORT | 2124 #endif  // ENABLE_DEBUGGER_SUPPORT | 
| 2125 | 2125 | 
| 2126 | 2126 | 
| 2127 | 2127 | 
| 2128 } }  // namespace v8::internal | 2128 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|