Changeset 14278 in webkit


Ignore:
Timestamp:
May 9, 2006 11:56:13 PM (18 years ago)
Author:
darin
Message:

Reviewed by Hyatt.

  • manual-tests/first-line-style-crash.html: Added.
  • css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::createStyleForElement): Changed to not return the shared styleNotYetAvailable if allowSharing is off.
  • rendering/RenderObject.cpp: (WebCore::RenderObject::getPseudoStyle): In the FIRST_LINE_INHERITED case, set the styleType on the style returned from createStyleForElement().
  • rendering/render_style.h: (WebCore::RenderStyle::setStyleType): Added. Called from RenderObject::getPseudoStyle().
Location:
trunk/WebCore
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r14277 r14278  
     12006-05-09  Mitz Pettel  <opendarwin.org@mitzpettel.com>
     2
     3        Reviewed by Hyatt.
     4
     5        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8760
     6          crash (hang?) on subtlegradient.com article page
     7
     8        * manual-tests/first-line-style-crash.html: Added.
     9
     10        * css/cssstyleselector.cpp:
     11        (WebCore::CSSStyleSelector::createStyleForElement): Changed to not return the
     12        shared styleNotYetAvailable if allowSharing is off.
     13        * rendering/RenderObject.cpp:
     14        (WebCore::RenderObject::getPseudoStyle): In the FIRST_LINE_INHERITED case,
     15        set the styleType on the style returned from createStyleForElement().
     16        * rendering/render_style.h:
     17        (WebCore::RenderStyle::setStyleType): Added. Called from RenderObject::getPseudoStyle().
     18
    1192006-05-09  Mitz Pettel  <opendarwin.org@mitzpettel.com>
    220
  • trunk/WebCore/css/cssstyleselector.cpp

    r14273 r14278  
    687687RenderStyle* CSSStyleSelector::styleForElement(Element* e, RenderStyle* defaultParent, bool allowSharing)
    688688{
    689     if (!e->document()->haveStylesheetsLoaded()) {
     689    if (allowSharing && !e->document()->haveStylesheetsLoaded()) {
    690690        if (!styleNotYetAvailable) {
    691691            styleNotYetAvailable = ::new RenderStyle();
  • trunk/WebCore/rendering/RenderObject.cpp

    r14273 r14278  
    23622362        return 0;
    23632363   
    2364     if (pseudo == RenderStyle::FIRST_LINE_INHERITED)
     2364    if (pseudo == RenderStyle::FIRST_LINE_INHERITED) {
    23652365        result = document()->styleSelector()->styleForElement(static_cast<Element*>(node), parentStyle, false);
    2366     else
     2366        result->setStyleType(RenderStyle::FIRST_LINE_INHERITED);
     2367    } else
    23672368        result = document()->styleSelector()->pseudoStyleForElement(pseudo, static_cast<Element*>(node), parentStyle);
    23682369    if (result) {
  • trunk/WebCore/rendering/render_style.h

    r14273 r14278  
    10871087
    10881088    PseudoId styleType() { return  static_cast<PseudoId>(noninherited_flags._styleType); }
     1089    void setStyleType(PseudoId styleType) { noninherited_flags._styleType = styleType; }
    10891090
    10901091    RenderStyle* getPseudoStyle(PseudoId pi);
Note: See TracChangeset for help on using the changeset viewer.