diff options
Diffstat (limited to 'WebCore/rendering/style/ContentData.h')
-rw-r--r-- | WebCore/rendering/style/ContentData.h | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/WebCore/rendering/style/ContentData.h b/WebCore/rendering/style/ContentData.h index 5c3565e..4f964a2 100644 --- a/WebCore/rendering/style/ContentData.h +++ b/WebCore/rendering/style/ContentData.h @@ -2,7 +2,7 @@ * Copyright (C) 2000 Lars Knoll (knoll@kde.org) * (C) 2000 Antti Koivisto (koivisto@kde.org) * (C) 2000 Dirk Mueller (mueller@kde.org) - * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) * * This library is free software; you can redistribute it and/or @@ -25,21 +25,18 @@ #ifndef ContentData_h #define ContentData_h -#include "RenderStyleConstants.h" -#include <wtf/Forward.h> -#include <wtf/Noncopyable.h> -#include <wtf/PassRefPtr.h> +#include "CounterContent.h" +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> namespace WebCore { -class CounterContent; class StyleImage; struct ContentData : Noncopyable { public: ContentData() : m_type(CONTENT_NONE) - , m_next(0) { } @@ -59,35 +56,44 @@ public: bool dataEquivalent(const ContentData&) const; - StyleImage* image() const { return m_content.m_image; } + StyleImage* image() const + { + ASSERT(isImage()); + return m_content.m_image; + } void setImage(PassRefPtr<StyleImage> image) { deleteContent(); m_type = CONTENT_OBJECT; - m_content.m_image = image.releaseRef(); + m_content.m_image = image.leakRef(); } - StringImpl* text() const { return m_content.m_text; } + StringImpl* text() const + { + ASSERT(isText()); + return m_content.m_text; + } void setText(PassRefPtr<StringImpl> text) { deleteContent(); m_type = CONTENT_TEXT; - m_content.m_text = text.releaseRef(); + m_content.m_text = text.leakRef(); } - CounterContent* counter() const { return m_content.m_counter; } - void setCounter(CounterContent* counter) + CounterContent* counter() const + { + ASSERT(isCounter()); + return m_content.m_counter; + } + void setCounter(PassOwnPtr<CounterContent> counter) { deleteContent(); m_type = CONTENT_COUNTER; - m_content.m_counter = counter; + m_content.m_counter = counter.leakPtr(); } - ContentData* next() const { return m_next; } - void setNext(ContentData* next) - { - m_next = next; - } + ContentData* next() const { return m_next.get(); } + void setNext(PassOwnPtr<ContentData> next) { m_next = next; } private: void deleteContent(); @@ -98,7 +104,7 @@ private: StringImpl* m_text; CounterContent* m_counter; } m_content; - ContentData* m_next; + OwnPtr<ContentData> m_next; }; } // namespace WebCore |