| Index: src/heap.h
|
| ===================================================================
|
| --- src/heap.h (revision 7090)
|
| +++ src/heap.h (working copy)
|
| @@ -41,7 +41,7 @@
|
|
|
|
|
| // Defines all the roots in Heap.
|
| -#define UNCONDITIONAL_STRONG_ROOT_LIST(V) \
|
| +#define STRONG_ROOT_LIST(V) \
|
| /* Put the byte array map early. We need it to be in place by the time */ \
|
| /* the deserializer hits the next page, since it wants to put a byte */ \
|
| /* array in the unused space at the end of the page. */ \
|
| @@ -114,26 +114,12 @@
|
| V(NumberDictionary, non_monomorphic_cache, NonMonomorphicCache) \
|
| V(Code, js_entry_code, JsEntryCode) \
|
| V(Code, js_construct_entry_code, JsConstructEntryCode) \
|
| - V(Code, c_entry_code, CEntryCode) \
|
| V(FixedArray, natives_source_cache, NativesSourceCache) \
|
| V(Object, last_script_id, LastScriptId) \
|
| V(Script, empty_script, EmptyScript) \
|
| V(Smi, real_stack_limit, RealStackLimit) \
|
| V(StringDictionary, intrinsic_function_names, IntrinsicFunctionNames) \
|
|
|
| -#if V8_TARGET_ARCH_ARM && !V8_INTERPRETED_REGEXP
|
| -#define STRONG_ROOT_LIST(V) \
|
| - UNCONDITIONAL_STRONG_ROOT_LIST(V) \
|
| - V(Code, re_c_entry_code, RegExpCEntryCode) \
|
| - V(Code, direct_c_entry_code, DirectCEntryCode)
|
| -#elif V8_TARGET_ARCH_ARM
|
| -#define STRONG_ROOT_LIST(V) \
|
| - UNCONDITIONAL_STRONG_ROOT_LIST(V) \
|
| - V(Code, direct_c_entry_code, DirectCEntryCode)
|
| -#else
|
| -#define STRONG_ROOT_LIST(V) UNCONDITIONAL_STRONG_ROOT_LIST(V)
|
| -#endif
|
| -
|
| #define ROOT_LIST(V) \
|
| STRONG_ROOT_LIST(V) \
|
| V(SymbolTable, symbol_table, SymbolTable)
|
| @@ -705,7 +691,8 @@
|
| // Please note this function does not perform a garbage collection.
|
| MUST_USE_RESULT static MaybeObject* CreateCode(const CodeDesc& desc,
|
| Code::Flags flags,
|
| - Handle<Object> self_reference);
|
| + Handle<Object> self_reference,
|
| + bool immovable = false);
|
|
|
| MUST_USE_RESULT static MaybeObject* CopyCode(Code* code);
|
|
|
| @@ -1327,13 +1314,10 @@
|
| static bool CreateInitialMaps();
|
| static bool CreateInitialObjects();
|
|
|
| - // These five Create*EntryStub functions are here and forced to not be inlined
|
| + // These two Create*EntryStub functions are here and forced to not be inlined
|
| // because of a gcc-4.4 bug that assigns wrong vtable entries.
|
| - NO_INLINE(static void CreateCEntryStub());
|
| NO_INLINE(static void CreateJSEntryStub());
|
| NO_INLINE(static void CreateJSConstructEntryStub());
|
| - NO_INLINE(static void CreateRegExpCEntryStub());
|
| - NO_INLINE(static void CreateDirectCEntryStub());
|
|
|
| static void CreateFixedStubs();
|
|
|
|
|