#define ContentDistribution_h
#include "core/dom/Node.h"
-#include "wtf/Forward.h"
#include "wtf/HashMap.h"
#include "wtf/Vector.h"
-namespace WebCore {
+namespace blink {
-class ContentDistribution {
+class ContentDistribution final {
+ DISALLOW_ALLOCATION();
public:
ContentDistribution() { m_nodes.reserveInitialCapacity(32); }
- PassRefPtr<Node> first() const { return m_nodes.first(); }
- PassRefPtr<Node> last() const { return m_nodes.last(); }
- PassRefPtr<Node> at(size_t index) const { return m_nodes.at(index); }
+ PassRefPtrWillBeRawPtr<Node> first() const { return m_nodes.first(); }
+ PassRefPtrWillBeRawPtr<Node> last() const { return m_nodes.last(); }
+ PassRefPtrWillBeRawPtr<Node> at(size_t index) const { return m_nodes.at(index); }
size_t size() const { return m_nodes.size(); }
bool isEmpty() const { return m_nodes.isEmpty(); }
- void append(PassRefPtr<Node>);
+ void append(PassRefPtrWillBeRawPtr<Node>);
void clear() { m_nodes.clear(); m_indices.clear(); }
void shrinkToFit() { m_nodes.shrinkToFit(); }
void swap(ContentDistribution& other);
- const Vector<RefPtr<Node> >& nodes() const { return m_nodes; }
+ const WillBeHeapVector<RefPtrWillBeMember<Node> >& nodes() const { return m_nodes; }
+
+ void trace(Visitor*);
private:
- Vector<RefPtr<Node> > m_nodes;
- HashMap<const Node*, size_t> m_indices;
+ WillBeHeapVector<RefPtrWillBeMember<Node> > m_nodes;
+ WillBeHeapHashMap<RawPtrWillBeMember<const Node>, size_t> m_indices;
};
}