Index: src/heap.cc |
=================================================================== |
--- src/heap.cc (revision 2255) |
+++ src/heap.cc (working copy) |
@@ -1257,28 +1257,51 @@ |
return true; |
} |
+ |
+void Heap::CreateCEntryStub() { |
+ CEntryStub stub; |
+ c_entry_code_ = *stub.GetCode(); |
+} |
+ |
+ |
+void Heap::CreateCEntryDebugBreakStub() { |
+ CEntryDebugBreakStub stub; |
+ c_entry_debug_break_code_ = *stub.GetCode(); |
+} |
+ |
+ |
+void Heap::CreateJSEntryStub() { |
+ JSEntryStub stub; |
+ js_entry_code_ = *stub.GetCode(); |
+} |
+ |
+ |
+void Heap::CreateJSConstructEntryStub() { |
+ JSConstructEntryStub stub; |
+ js_construct_entry_code_ = *stub.GetCode(); |
+} |
+ |
+ |
void Heap::CreateFixedStubs() { |
// Here we create roots for fixed stubs. They are needed at GC |
// for cooking and uncooking (check out frames.cc). |
// The eliminates the need for doing dictionary lookup in the |
// stub cache for these stubs. |
HandleScope scope; |
- { |
- CEntryStub stub; |
- c_entry_code_ = *stub.GetCode(); |
- } |
- { |
- CEntryDebugBreakStub stub; |
- c_entry_debug_break_code_ = *stub.GetCode(); |
- } |
- { |
- JSEntryStub stub; |
- js_entry_code_ = *stub.GetCode(); |
- } |
- { |
- JSConstructEntryStub stub; |
- js_construct_entry_code_ = *stub.GetCode(); |
- } |
+ // gcc-4.4 has problem to generate the correct vtables if the following |
Erik Corry
2009/06/24 07:38:31
Should be "gcc-4.4 has problems generating..."
I
|
+ // functions are inlined. e.g., |
+ // { CEntryStub stub; |
+ // c_entry_code_ = *stub.GetCode(); |
+ // } |
+ // { CEntryDebugBreakStub stub; |
+ // c_entry_debug_break_code_ = *stub.GetCode(); |
+ // } |
+ // |
+ // Possible gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32327 |
Erik Corry
2009/06/24 07:38:31
Is this relevant? According to the bug this was f
|
+ Heap::CreateCEntryStub(); |
+ Heap::CreateCEntryDebugBreakStub(); |
+ Heap::CreateJSEntryStub(); |
+ Heap::CreateJSConstructEntryStub(); |
} |