Ignore:
Timestamp:
Jan 31, 2011, 12:07:21 PM (14 years ago)
Author:
[email protected]
Message:

2011-01-31 Oliver Hunt <[email protected]>

Convert markstack to a slot visitor API
https://bugs.webkit.org/show_bug.cgi?id=53219

rolling r77098, r77099, r77100, r77109, and
r77111 back in, along with a few more Qt fix attempts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/MarkStack.h

    r77113 r77151  
    2828
    2929#include "JSValue.h"
     30#include "WriteBarrier.h"
    3031#include <wtf/Vector.h>
    3132#include <wtf/Noncopyable.h>
     
    5051        {
    5152        }
    52 
    53         ALWAYS_INLINE void append(JSValue);
    54         void append(JSCell*);
    5553       
    56         ALWAYS_INLINE void appendValues(Register* values, size_t count, MarkSetProperties properties = NoNullValues)
    57         {
    58             appendValues(reinterpret_cast<JSValue*>(values), count, properties);
    59         }
    60 
    61         ALWAYS_INLINE void appendValues(JSValue* values, size_t count, MarkSetProperties properties = NoNullValues)
    62         {
     54        void deprecatedAppend(JSValue*);
     55        void deprecatedAppend(JSCell**);
     56        void deprecatedAppend(Register*);
     57        template <typename T> void append(WriteBarrierBase<T>*);
     58        template <typename T> void append(DeprecatedPtr<T>*);
     59       
     60        ALWAYS_INLINE void deprecatedAppendValues(Register* registers, size_t count, MarkSetProperties properties = NoNullValues)
     61        {
     62            JSValue* values = reinterpret_cast<JSValue*>(registers);
    6363            if (count)
    6464                m_markSets.append(MarkSet(values, values + count, properties));
    6565        }
    6666
     67        void appendValues(WriteBarrierBase<Unknown>* barriers, size_t count, MarkSetProperties properties = NoNullValues)
     68        {
     69            JSValue* values = barriers->slot();
     70            if (count)
     71                m_markSets.append(MarkSet(values, values + count, properties));
     72        }
     73
    6774        inline void drain();
    6875        void compact();
     
    7582
    7683    private:
     84        void internalAppend(JSCell*);
     85        void internalAppend(JSValue);
    7786        void markChildren(JSCell*);
    7887
Note: See TracChangeset for help on using the changeset viewer.