[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdelibs/khtml/css
From: Nikolas Zimmermann <wildfox () kde ! org>
Date: 2006-03-21 11:17:32
Message-ID: 1142939852.108196.11200.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 520953 by wildfox:
Forwardport my last commit from trunk:
Committing my khtml-possible-css-fix.diff, fixing the @namespace collector
to not crash on every namespace != xhtml. This fixes at least my svg sheet
loading stuff. No new regressions introduced. Reviewed (at least) by Germain.
M +8 -2 css_stylesheetimpl.cpp
M +7 -7 cssstyleselector.cpp
M +2 -2 cssstyleselector.h
--- branches/KDE/3.5/kdelibs/khtml/css/css_stylesheetimpl.cpp #520952:520953
@@ -216,10 +216,13 @@
m_namespaces = new CSSNamespace(prefix, uri, m_namespaces);
- if (prefix.isEmpty())
+ if (prefix.isEmpty()) {
+ Q_ASSERT(m_doc != 0);
+
// Set the default namespace on the parser so that selectors that omit \
namespace info will // be able to pick it up easily.
p->defaultNamespace = m_doc->getId(NodeImpl::NamespaceId, \
uri.implementation(), false, false, &exceptioncode); + }
}
void CSSStyleSheetImpl::determineNamespace(Q_UINT32& id, const DOM::DOMString& \
prefix) @@ -236,9 +239,12 @@
else {
int exceptioncode = 0;
CSSNamespace* ns = m_namespaces->namespaceForPrefix(prefix);
- if (ns)
+ if (ns) {
+ Q_ASSERT(m_doc != 0);
+
// Look up the id for this namespace URI.
id = makeId(m_doc->getId(NodeImpl::NamespaceId, \
ns->uri().implementation(), false, false, &exceptioncode), localNamePart(id)); + \
} }
}
--- branches/KDE/3.5/kdelibs/khtml/css/cssstyleselector.cpp #520952:520953
@@ -191,7 +191,7 @@
{
KHTMLView* view = doc->view();
- init(view ? view->part()->settings() : 0);
+ init(view ? view->part()->settings() : 0, doc);
strictParsing = _strictParsing;
m_medium = view ? view->mediaType() : QString("all");
@@ -249,7 +249,7 @@
CSSStyleSelector::CSSStyleSelector( CSSStyleSheetImpl *sheet )
{
- init(0L);
+ init(0L, 0L);
KHTMLView *view = sheet->doc()->view();
m_medium = view ? view->mediaType() : "screen";
@@ -258,7 +258,7 @@
authorStyle->append( sheet, m_medium );
}
-void CSSStyleSelector::init(const KHTMLSettings* _settings)
+void CSSStyleSelector::init(const KHTMLSettings* _settings, DocumentImpl* doc)
{
element = 0;
settings = _settings;
@@ -267,7 +267,7 @@
pseudoProps = (CSSOrderedProperty **)malloc(128*sizeof(CSSOrderedProperty *));
propsToApplySize = 128;
pseudoPropsSize = 128;
- if(!s_defaultStyle) loadDefaultStyle(settings);
+ if(!s_defaultStyle) loadDefaultStyle(settings, doc);
defaultStyle = s_defaultStyle;
defaultPrintStyle = s_defaultPrintStyle;
@@ -291,7 +291,7 @@
authorStyle->append( sheet, m_medium );
}
-void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s)
+void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s, DocumentImpl *doc)
{
if(s_defaultStyle) return;
@@ -310,7 +310,7 @@
style += s->settingsToCSS();
DOMString str(style);
- s_defaultSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
+ s_defaultSheet = new DOM::CSSStyleSheetImpl(doc);
s_defaultSheet->parseString( str );
// Collect only strict-mode rules.
@@ -333,7 +333,7 @@
QString style = QString::fromLatin1( file.data() );
DOMString str(style);
- s_quirksSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
+ s_quirksSheet = new DOM::CSSStyleSheetImpl(doc);
s_quirksSheet->parseString( str );
// Collect only quirks-mode rules.
--- branches/KDE/3.5/kdelibs/khtml/css/cssstyleselector.h #520952:520953
@@ -126,7 +126,7 @@
KDE_EXPORT static void clear();
static void reparseConfiguration();
- static void loadDefaultStyle(const KHTMLSettings *s = 0);
+ static void loadDefaultStyle(const KHTMLSettings *s, DOM::DocumentImpl *doc);
RenderStyle *styleForElement(DOM::ElementImpl *e);
@@ -184,7 +184,7 @@
public:
private:
- void init(const KHTMLSettings* settings);
+ void init(const KHTMLSettings* settings, DOM::DocumentImpl* doc);
void mapBackgroundAttachment(BackgroundLayer* layer, DOM::CSSValueImpl* \
value);
void mapBackgroundImage(BackgroundLayer* layer, DOM::CSSValueImpl* value);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic