Changeset 37252 in webkit


Ignore:
Timestamp:
Oct 3, 2008 1:20:01 PM (16 years ago)
Author:
Simon Fraser
Message:

2008-10-03 Simon Fraser <Simon Fraser>

Reviewed by Dave Hyatt

Make setStyle() take a const RenderStyle, to ensure that an
earlier RenderStyle::diff() remains valid.

Location:
trunk/WebCore
Files:
46 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r37251 r37252  
     12008-10-03  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Reviewed by Dave Hyatt
     4
     5        Make setStyle() take a const RenderStyle, to ensure that an
     6        earlier RenderStyle::diff() remains valid.
     7
     8        * rendering/RenderBR.cpp:
     9        * rendering/RenderBR.h:
     10        * rendering/RenderBlock.cpp:
     11        * rendering/RenderBlock.h:
     12        * rendering/RenderBox.cpp:
     13        * rendering/RenderBox.h:
     14        * rendering/RenderButton.cpp:
     15        * rendering/RenderButton.h:
     16        * rendering/RenderFieldset.cpp:
     17        * rendering/RenderFieldset.h:
     18        * rendering/RenderFileUploadControl.cpp:
     19        * rendering/RenderFileUploadControl.h:
     20        * rendering/RenderInline.cpp:
     21        * rendering/RenderInline.h:
     22        * rendering/RenderListBox.cpp:
     23        * rendering/RenderListBox.h:
     24        * rendering/RenderListItem.cpp:
     25        * rendering/RenderListItem.h:
     26        * rendering/RenderListMarker.cpp:
     27        * rendering/RenderListMarker.h:
     28        * rendering/RenderMenuList.cpp:
     29        * rendering/RenderMenuList.h:
     30        * rendering/RenderObject.cpp:
     31        (WebCore::RenderObject::setStyle):
     32        * rendering/RenderObject.h:
     33        * rendering/RenderReplaced.cpp:
     34        * rendering/RenderReplaced.h:
     35        * rendering/RenderSVGBlock.cpp:
     36        (WebCore::RenderSVGBlock::setStyle):
     37        * rendering/RenderSVGBlock.h:
     38        * rendering/RenderSVGGradientStop.cpp:
     39        * rendering/RenderSVGGradientStop.h:
     40        * rendering/RenderSlider.cpp:
     41        * rendering/RenderSlider.h:
     42        * rendering/RenderTable.cpp:
     43        * rendering/RenderTable.h:
     44        * rendering/RenderTableCell.cpp:
     45        * rendering/RenderTableCell.h:
     46        * rendering/RenderTableRow.cpp:
     47        * rendering/RenderTableRow.h:
     48        * rendering/RenderText.cpp:
     49        * rendering/RenderText.h:
     50        * rendering/RenderTextControl.cpp:
     51        * rendering/RenderTextControl.h:
     52        * rendering/RenderWidget.cpp:
     53        * rendering/RenderWidget.h:
     54        * rendering/style/RenderStyle.h:
     55        (WebCore::RenderStyle::isDisplayReplacedType):
     56        (WebCore::RenderStyle::isDisplayInlineType):
     57
    1582008-10-03  David Hyatt  <hyatt@apple.com>
    259
  • trunk/WebCore/rendering/RenderBR.cpp

    r34693 r37252  
    8383}
    8484
    85 void RenderBR::setStyle(RenderStyle* newStyle)
     85void RenderBR::setStyle(const RenderStyle* newStyle)
    8686{
    8787    RenderText::setStyle(newStyle);
  • trunk/WebCore/rendering/RenderBR.h

    r34693 r37252  
    4848    virtual int lineHeight(bool firstLine, bool isRootLineBox = false) const;
    4949    virtual int baselinePosition(bool firstLine, bool isRootLineBox = false) const;
    50     virtual void setStyle(RenderStyle*);
     50    virtual void setStyle(const RenderStyle*);
    5151
    5252    // overrides
  • trunk/WebCore/rendering/RenderBlock.cpp

    r37220 r37252  
    147147}
    148148
    149 void RenderBlock::setStyle(RenderStyle* newStyle)
     149void RenderBlock::setStyle(const RenderStyle* newStyle)
    150150{
    151151    setReplaced(newStyle->isDisplayReplacedType());
  • trunk/WebCore/rendering/RenderBlock.h

    r36513 r37252  
    107107    virtual void repaintOverhangingFloats(bool paintAllDescendants);
    108108
    109     virtual void setStyle(RenderStyle*);
     109    virtual void setStyle(const RenderStyle*);
    110110
    111111    virtual void layout();
  • trunk/WebCore/rendering/RenderBox.cpp

    r36758 r37252  
    7373}
    7474
    75 void RenderBox::setStyle(RenderStyle* newStyle)
     75void RenderBox::setStyle(const RenderStyle* newStyle)
    7676{
    7777    bool wasFloating = isFloating();
  • trunk/WebCore/rendering/RenderBox.h

    r36082 r37252  
    3737    virtual const char* renderName() const { return "RenderBox"; }
    3838
    39     virtual void setStyle(RenderStyle*);
     39    virtual void setStyle(const RenderStyle*);
    4040    virtual void paint(PaintInfo&, int tx, int ty);
    4141    virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
  • trunk/WebCore/rendering/RenderButton.cpp

    r36107 r37252  
    6565}
    6666
    67 void RenderButton::setStyle(RenderStyle* style)
     67void RenderButton::setStyle(const RenderStyle* style)
    6868{
    6969    if (m_inner) {
  • trunk/WebCore/rendering/RenderButton.h

    r35950 r37252  
    4646    virtual bool createsAnonymousWrapper() const { return true; }
    4747
    48     virtual void setStyle(RenderStyle*);
     48    virtual void setStyle(const RenderStyle*);
    4949    virtual void updateFromElement();
    5050
  • trunk/WebCore/rendering/RenderFieldset.cpp

    r34715 r37252  
    261261}
    262262
    263 void RenderFieldset::setStyle(RenderStyle* newStyle)
     263void RenderFieldset::setStyle(const RenderStyle* newStyle)
    264264{
    265265    RenderBlock::setStyle(newStyle);
  • trunk/WebCore/rendering/RenderFieldset.h

    r36670 r37252  
    4242    virtual RenderObject* layoutLegend(bool relayoutChildren);
    4343
    44     virtual void setStyle(RenderStyle*);
     44    virtual void setStyle(const RenderStyle*);
    4545
    4646    virtual void calcPrefWidths();
  • trunk/WebCore/rendering/RenderFileUploadControl.cpp

    r37220 r37252  
    7272}
    7373
    74 void RenderFileUploadControl::setStyle(RenderStyle* newStyle)
     74void RenderFileUploadControl::setStyle(const RenderStyle* newStyle)
    7575{
    7676    RenderBlock::setStyle(newStyle);
     
    135135}
    136136
    137 RenderStyle* RenderFileUploadControl::createButtonStyle(RenderStyle* parentStyle) const
     137RenderStyle* RenderFileUploadControl::createButtonStyle(const RenderStyle* parentStyle) const
    138138{
    139139    RenderStyle* style = getPseudoStyle(RenderStyle::FILE_UPLOAD_BUTTON);
  • trunk/WebCore/rendering/RenderFileUploadControl.h

    r32958 r37252  
    4040    virtual const char* renderName() const { return "RenderFileUploadControl"; }
    4141
    42     virtual void setStyle(RenderStyle*);
     42    virtual void setStyle(const RenderStyle*);
    4343    virtual void updateFromElement();
    4444    virtual void calcPrefWidths();
     
    5656private:
    5757    int maxFilenameWidth() const;
    58     RenderStyle* createButtonStyle(RenderStyle* parentStyle) const;
     58    RenderStyle* createButtonStyle(const RenderStyle* parentStyle) const;
    5959
    6060    RefPtr<HTMLInputElement> m_button;
  • trunk/WebCore/rendering/RenderInline.cpp

    r35186 r37252  
    4242}
    4343
    44 void RenderInline::setStyle(RenderStyle* newStyle)
     44void RenderInline::setStyle(const RenderStyle* newStyle)
    4545{
    4646    RenderFlow::setStyle(newStyle);
  • trunk/WebCore/rendering/RenderInline.h

    r25754 r37252  
    5151                   RenderObject* newChild, RenderFlow* oldCont);
    5252
    53     virtual void setStyle(RenderStyle*);
     53    virtual void setStyle(const RenderStyle*);
    5454
    5555    virtual void layout() { } // Do nothing for layout()
  • trunk/WebCore/rendering/RenderListBox.cpp

    r37223 r37252  
    9191}
    9292
    93 void RenderListBox::setStyle(RenderStyle* style)
     93void RenderListBox::setStyle(const RenderStyle* style)
    9494{
    9595    RenderBlock::setStyle(style);
  • trunk/WebCore/rendering/RenderListBox.h

    r37223 r37252  
    4848    virtual bool isListBox() const { return true; }
    4949
    50     virtual void setStyle(RenderStyle*);
     50    virtual void setStyle(const RenderStyle*);
    5151    virtual void updateFromElement();
    5252
  • trunk/WebCore/rendering/RenderListItem.cpp

    r36321 r37252  
    4949}
    5050
    51 void RenderListItem::setStyle(RenderStyle* newStyle)
     51void RenderListItem::setStyle(const RenderStyle* newStyle)
    5252{
    5353    RenderBlock::setStyle(newStyle);
  • trunk/WebCore/rendering/RenderListItem.h

    r25754 r37252  
    4040    virtual void destroy();
    4141
    42     virtual void setStyle(RenderStyle*);
     42    virtual void setStyle(const RenderStyle*);
    4343
    4444    int value() const { if (!m_isValueUpToDate) updateValueNow(); return m_value; }
  • trunk/WebCore/rendering/RenderListMarker.cpp

    r34693 r37252  
    486486}
    487487
    488 void RenderListMarker::setStyle(RenderStyle* s)
     488void RenderListMarker::setStyle(const RenderStyle* s)
    489489{
    490490    if (style() && (s->listStylePosition() != style()->listStylePosition() || s->listStyleType() != style()->listStyleType()))
  • trunk/WebCore/rendering/RenderListMarker.h

    r34693 r37252  
    4343    virtual bool isListMarker() const { return true; }
    4444
    45     virtual void setStyle(RenderStyle*);
     45    virtual void setStyle(const RenderStyle*);
    4646
    4747    virtual void paint(PaintInfo&, int tx, int ty);
  • trunk/WebCore/rendering/RenderMenuList.cpp

    r37220 r37252  
    118118}
    119119
    120 void RenderMenuList::setStyle(RenderStyle* newStyle)
     120void RenderMenuList::setStyle(const RenderStyle* newStyle)
    121121{
    122122    bool fontChanged = !style() || style()->font() != newStyle->font();
  • trunk/WebCore/rendering/RenderMenuList.h

    r31517 r37252  
    5252    virtual bool canHaveChildren() const { return false; }
    5353
    54     virtual void setStyle(RenderStyle*);
     54    virtual void setStyle(const RenderStyle*);
    5555    virtual void updateFromElement();
    5656
  • trunk/WebCore/rendering/RenderObject.cpp

    r37137 r37252  
    21612161}
    21622162
    2163 void RenderObject::setStyle(RenderStyle* style)
     2163void RenderObject::setStyle(const RenderStyle* style)
    21642164{
    21652165    if (m_style == style)
     
    23022302
    23032303    RenderStyle* oldStyle = m_style;
    2304     m_style = style;
     2304    m_style = const_cast<RenderStyle*>(style);
     2305    if (m_style)
     2306        m_style->ref();
    23052307
    23062308    updateFillImages(oldStyle ? oldStyle->backgroundLayers() : 0, m_style ? m_style->backgroundLayers() : 0);
     
    23102312    updateImage(oldStyle ? oldStyle->maskBoxImage().image() : 0, m_style ? m_style->maskBoxImage().image() : 0);
    23112313
    2312     if (m_style)
    2313         m_style->ref();
    2314 
    2315     if (oldStyle)
     2314    if (oldStyle) {
    23162315        oldStyle->deref(renderArena());
     2316        oldStyle = 0;
     2317    }
    23172318
    23182319    setHasBoxDecorations(m_style->hasBorder() || m_style->hasBackground() || m_style->hasAppearance() || m_style->boxShadow());
  • trunk/WebCore/rendering/RenderObject.h

    r36670 r37252  
    556556
    557557    // Set the style of the object and update the state of the object accordingly.
    558     virtual void setStyle(RenderStyle*);
     558    virtual void setStyle(const RenderStyle*);
    559559
    560560    // Updates only the local style ptr of the object.  Does not update the state of the object,
  • trunk/WebCore/rendering/RenderReplaced.cpp

    r35828 r37252  
    6262}
    6363
    64 void RenderReplaced::setStyle(RenderStyle* newStyle)
     64void RenderReplaced::setStyle(const RenderStyle* newStyle)
    6565{
    6666    bool hadStyle = style();
  • trunk/WebCore/rendering/RenderReplaced.h

    r34693 r37252  
    4343    virtual int minimumReplacedHeight() const { return 0; }
    4444
    45     virtual void setStyle(RenderStyle*);
     45    virtual void setStyle(const RenderStyle*);
    4646
    4747    virtual void paint(PaintInfo&, int tx, int ty);
  • trunk/WebCore/rendering/RenderSVGBlock.cpp

    r26821 r37252  
    3636}
    3737
    38 void RenderSVGBlock::setStyle(RenderStyle* style)
     38void RenderSVGBlock::setStyle(const RenderStyle* style)
    3939{
    40     RenderStyle* useStyle = style;
     40    const RenderStyle* useStyle = style;
    4141
    4242    // SVG text layout code expects us to be a block-level style element.   
     
    4444        setChildrenInline(false);
    4545    else if (useStyle->isDisplayInlineType()) {
    46         useStyle = new (renderArena()) RenderStyle();
    47         useStyle->inheritFrom(style);
    48         useStyle->setDisplay(BLOCK);
     46        RenderStyle* newStyle = new (renderArena()) RenderStyle();
     47        newStyle->inheritFrom(style);
     48        newStyle->setDisplay(BLOCK);
     49        useStyle = newStyle;
    4950    }
    5051
  • trunk/WebCore/rendering/RenderSVGBlock.h

    r25754 r37252  
    3434public:
    3535    RenderSVGBlock(SVGElement*);
    36     virtual void setStyle(RenderStyle*);
     36    virtual void setStyle(const RenderStyle*);
    3737};
    3838
  • trunk/WebCore/rendering/RenderSVGGradientStop.cpp

    r29951 r37252  
    4343}
    4444
    45 void RenderSVGGradientStop::setStyle(RenderStyle* style)
     45void RenderSVGGradientStop::setStyle(const RenderStyle* style)
    4646{
    4747    RenderObject::setStyle(style);
  • trunk/WebCore/rendering/RenderSVGGradientStop.h

    r29951 r37252  
    4141       
    4242        virtual void layout();
    43         virtual void setStyle(RenderStyle*);
     43        virtual void setStyle(const RenderStyle*);
    4444       
    4545    private:
  • trunk/WebCore/rendering/RenderSlider.cpp

    r37247 r37252  
    165165}
    166166
    167 void RenderSlider::setStyle(RenderStyle* newStyle)
     167void RenderSlider::setStyle(const RenderStyle* newStyle)
    168168{
    169169    RenderBlock::setStyle(newStyle);
     
    177177}
    178178
    179 RenderStyle* RenderSlider::createThumbStyle(RenderStyle* parentStyle, RenderStyle* oldStyle)
     179RenderStyle* RenderSlider::createThumbStyle(const RenderStyle* parentStyle, const RenderStyle* oldStyle)
    180180{
    181181    RenderStyle* style;
  • trunk/WebCore/rendering/RenderSlider.h

    r34693 r37252  
    4242        virtual int baselinePosition( bool, bool ) const;
    4343        virtual void calcPrefWidths();
    44         virtual void setStyle(RenderStyle*);
     44        virtual void setStyle(const RenderStyle*);
    4545        virtual void layout();
    4646        virtual void updateFromElement();
     
    6161
    6262    private:
    63         RenderStyle* createThumbStyle(RenderStyle* parentStyle, RenderStyle* oldStyle = 0);
     63        RenderStyle* createThumbStyle(const RenderStyle* parentStyle, const RenderStyle* oldStyle = 0);
    6464        int trackSize();
    6565
  • trunk/WebCore/rendering/RenderTable.cpp

    r35899 r37252  
    7171}
    7272
    73 void RenderTable::setStyle(RenderStyle* newStyle)
     73void RenderTable::setStyle(const RenderStyle* newStyle)
    7474{
    7575    ETableLayout oldTableLayout = style() ? style()->tableLayout() : TAUTO;
  • trunk/WebCore/rendering/RenderTable.h

    r35899 r37252  
    6767    virtual bool isTable() const { return true; }
    6868
    69     virtual void setStyle(RenderStyle*);
     69    virtual void setStyle(const RenderStyle*);
    7070
    7171    virtual bool avoidsFloats() const { return true; }
  • trunk/WebCore/rendering/RenderTableCell.cpp

    r37219 r37252  
    221221}
    222222
    223 void RenderTableCell::setStyle(RenderStyle* newStyle)
     223void RenderTableCell::setStyle(const RenderStyle* newStyle)
    224224{
    225225    if (parent() && section() && style() && style()->height() != newStyle->height())
  • trunk/WebCore/rendering/RenderTableCell.h

    r34693 r37252  
    6565    virtual void calcWidth();
    6666    virtual void setWidth(int);
    67     virtual void setStyle(RenderStyle*);
     67    virtual void setStyle(const RenderStyle*);
    6868
    6969    virtual bool expandsToEncloseOverhangingFloats() const { return true; }
  • trunk/WebCore/rendering/RenderTableRow.cpp

    r37219 r37252  
    5555}
    5656
    57 void RenderTableRow::setStyle(RenderStyle* newStyle)
     57void RenderTableRow::setStyle(const RenderStyle* newStyle)
    5858{
    5959    if (section() && style() && style()->height() != newStyle->height())
  • trunk/WebCore/rendering/RenderTableRow.h

    r34693 r37252  
    4545    RenderTable* table() const { return static_cast<RenderTable*>(parent()->parent()); }
    4646
    47     virtual void setStyle(RenderStyle*);
     47    virtual void setStyle(const RenderStyle*);
    4848    virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0);
    4949    virtual int lineHeight(bool firstLine, bool isRootLineBox = false) const { return 0; }
  • trunk/WebCore/rendering/RenderText.cpp

    r35902 r37252  
    9292}
    9393
    94 void RenderText::setStyle(RenderStyle* newStyle)
     94void RenderText::setStyle(const RenderStyle* newStyle)
    9595{
    9696    RenderStyle* oldStyle = style();
  • trunk/WebCore/rendering/RenderText.h

    r34693 r37252  
    4545    virtual PassRefPtr<StringImpl> originalText() const;
    4646
    47     virtual void setStyle(RenderStyle*);
     47    virtual void setStyle(const RenderStyle*);
    4848
    4949    void extractTextBox(InlineTextBox*);
  • trunk/WebCore/rendering/RenderTextControl.cpp

    r37217 r37252  
    109109}
    110110
    111 void RenderTextControl::setStyle(RenderStyle* style)
     111void RenderTextControl::setStyle(const RenderStyle* style)
    112112{
    113113    RenderBlock::setStyle(style);
     
    143143}
    144144
    145 RenderStyle* RenderTextControl::createInnerBlockStyle(RenderStyle* startStyle)
     145RenderStyle* RenderTextControl::createInnerBlockStyle(const RenderStyle* startStyle)
    146146{
    147147    RenderStyle* innerBlockStyle = new (renderArena()) RenderStyle();
     
    156156}
    157157
    158 RenderStyle* RenderTextControl::createInnerTextStyle(RenderStyle* startStyle)
     158RenderStyle* RenderTextControl::createInnerTextStyle(const RenderStyle* startStyle)
    159159{
    160160    HTMLFormControlElement* element = static_cast<HTMLFormControlElement*>(node());
     
    226226}
    227227
    228 RenderStyle* RenderTextControl::createResultsButtonStyle(RenderStyle* startStyle)
     228RenderStyle* RenderTextControl::createResultsButtonStyle(const RenderStyle* startStyle)
    229229{
    230230    ASSERT(!m_multiLine);
     
    247247}
    248248
    249 RenderStyle* RenderTextControl::createCancelButtonStyle(RenderStyle* startStyle)
     249RenderStyle* RenderTextControl::createCancelButtonStyle(const RenderStyle* startStyle)
    250250{
    251251    RenderStyle* cancelBlockStyle;
  • trunk/WebCore/rendering/RenderTextControl.h

    r37217 r37252  
    4848    virtual void calcPrefWidths();
    4949    virtual void removeLeftoverAnonymousBlock(RenderBlock*) { }
    50     virtual void setStyle(RenderStyle*);
     50    virtual void setStyle(const RenderStyle*);
    5151    virtual void updateFromElement();
    5252    virtual bool canHaveChildren() const { return false; }
     
    131131    virtual FontSelector* fontSelector() const;
    132132
    133     RenderStyle* createInnerBlockStyle(RenderStyle* startStyle);
    134     RenderStyle* createInnerTextStyle(RenderStyle* startStyle);
    135     RenderStyle* createCancelButtonStyle(RenderStyle* startStyle);
    136     RenderStyle* createResultsButtonStyle(RenderStyle* startStyle);
     133    RenderStyle* createInnerBlockStyle(const RenderStyle* startStyle);
     134    RenderStyle* createInnerTextStyle(const RenderStyle* startStyle);
     135    RenderStyle* createCancelButtonStyle(const RenderStyle* startStyle);
     136    RenderStyle* createResultsButtonStyle(const RenderStyle* startStyle);
    137137
    138138    void createSubtreeIfNeeded();
  • trunk/WebCore/rendering/RenderWidget.cpp

    r36995 r37252  
    157157}
    158158
    159 void RenderWidget::setStyle(RenderStyle* newStyle)
     159void RenderWidget::setStyle(const RenderStyle* newStyle)
    160160{
    161161    RenderReplaced::setStyle(newStyle);
  • trunk/WebCore/rendering/RenderWidget.h

    r36885 r37252  
    3838    virtual bool isWidget() const { return true; }
    3939
    40     virtual void setStyle(RenderStyle*);
     40    virtual void setStyle(const RenderStyle*);
    4141
    4242    virtual void paint(PaintInfo&, int tx, int ty);
  • trunk/WebCore/rendering/style/RenderStyle.h

    r37217 r37252  
    438438    ETableLayout tableLayout() const { return static_cast<ETableLayout>(noninherited_flags._table_layout); }
    439439
    440     const Font& font() { return inherited->font; }
    441     const FontDescription& fontDescription() { return inherited->font.fontDescription(); }
     440    const Font& font() const { return inherited->font; }
     441    const FontDescription& fontDescription() const { return inherited->font.fontDescription(); }
    442442    int fontSize() const { return inherited->font.pixelSize(); }
    443443
     
    858858    void setHtmlHacks(bool b=true) { inherited_flags._htmlHacks = b; }
    859859
    860     bool hasAutoZIndex() { return box->z_auto; }
     860    bool hasAutoZIndex() const { return box->z_auto; }
    861861    void setHasAutoZIndex() { SET_VAR(box, z_auto, true); SET_VAR(box, z_index, 0) }
    862862    int zIndex() const { return box->z_index; }
     
    976976    Diff diff(const RenderStyle*) const;
    977977
    978     bool isDisplayReplacedType()
     978    bool isDisplayReplacedType() const
    979979    {
    980980        return display() == INLINE_BLOCK || display() == INLINE_BOX || display() == INLINE_TABLE;
    981981    }
    982982
    983     bool isDisplayInlineType()
     983    bool isDisplayInlineType() const
    984984    {
    985985        return display() == INLINE || isDisplayReplacedType();
    986986    }
    987987
    988     bool isOriginalDisplayInlineType()
     988    bool isOriginalDisplayInlineType() const
    989989    {
    990990        return originalDisplay() == INLINE || originalDisplay() == INLINE_BLOCK ||
Note: See TracChangeset for help on using the changeset viewer.