[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta
From: Rob Buis <rwlbuis () xs4all ! nl>
Date: 2005-08-25 19:29:43
Message-ID: 1124998183.377105.24643.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 453286 by buis:
Be more careful when using these two DOMStringImpls. Now svgparsertest should run \
much better, and at least not crash.
M +8 -0 kdom/Helper.cpp
M +15 -5 ksvg2/impl/SVGDOMImplementationImpl.cpp
--- trunk/kdenonbeta/kdom/Helper.cpp #453285:453286
@@ -88,6 +88,10 @@
void Helper::CheckQualifiedName(DOMStringImpl *qualifiedNameImpl, DOMStringImpl \
*namespaceURIImpl, int &colonPos, bool nameCanBeNull, bool nameCanBeEmpty) {
+ if(namespaceURIImpl)
+ namespaceURIImpl->ref();
+ if(qualifiedNameImpl)
+ qualifiedNameImpl->ref();
DOMString qualifiedName(qualifiedNameImpl);
DOMString namespaceURI(namespaceURIImpl);
@@ -119,6 +123,10 @@
{
throw new DOMExceptionImpl(NAMESPACE_ERR);
}
+ if(namespaceURIImpl)
+ namespaceURIImpl->deref();
+ if(qualifiedNameImpl)
+ qualifiedNameImpl->deref();
}
int Helper::CheckMalformedQualifiedName(DOMStringImpl *qualifiedName)
--- trunk/kdenonbeta/ksvg2/impl/SVGDOMImplementationImpl.cpp #453285:453286
@@ -156,14 +156,19 @@
return createDocument(namespaceURI, qualifiedNameImpl, doctype, true, 0);
}
-KDOM::DocumentImpl *SVGDOMImplementationImpl::createDocument(KDOM::DOMStringImpl \
*namespaceURI, KDOM::DOMStringImpl *qualifiedNameImpl, KDOM::DocumentTypeImpl \
*doctype, bool createDocElement, KDOM::KDOMView *view) const +KDOM::DocumentImpl \
*SVGDOMImplementationImpl::createDocument(KDOM::DOMStringImpl *namespaceURIImpl, \
KDOM::DOMStringImpl *qualifiedNameImpl, KDOM::DocumentTypeImpl *doctype, bool \
createDocElement, KDOM::KDOMView *view) const {
+ if(namespaceURIImpl)
+ namespaceURIImpl->ref();
+ if(qualifiedNameImpl)
+ qualifiedNameImpl->ref();
+ KDOM::DOMString namespaceURI(namespaceURIImpl);
KDOM::DOMString qualifiedName(qualifiedNameImpl);
- if((namespaceURI && KDOM::DOMString(namespaceURI) != KDOM::NS_SVG) || \
(qualifiedName != "svg" && qualifiedName != "svg:svg"))
- return KDOM::DOMImplementationImpl::createDocument(namespaceURI, \
qualifiedNameImpl, doctype, createDocElement, view); + if((namespaceURI != \
KDOM::NS_SVG) || (qualifiedName != "svg" && qualifiedName != "svg:svg")) + \
return KDOM::DOMImplementationImpl::createDocument(namespaceURIImpl, \
qualifiedNameImpl, doctype, createDocElement, view);
int dummy;
- KDOM::Helper::CheckQualifiedName(qualifiedNameImpl, namespaceURI, dummy, true \
/*nameCanBeNull*/, true /*nameCanBeEmpty, see #61650*/); + \
KDOM::Helper::CheckQualifiedName(qualifiedNameImpl, namespaceURIImpl, dummy, true \
/*nameCanBeNull*/, true /*nameCanBeEmpty, see #61650*/);
// WRONG_DOCUMENT_ERR: Raised if docType has already been used with a different
// document or was created from a different implementation.
@@ -179,10 +184,15 @@
// Add root element...
if(createDocElement)
{
- KDOM::ElementImpl *svg = doc->createElementNS(namespaceURI, \
qualifiedNameImpl); + KDOM::ElementImpl *svg = \
doc->createElementNS(namespaceURIImpl, qualifiedNameImpl); doc->appendChild(svg);
}
+ if(namespaceURIImpl)
+ namespaceURIImpl->deref();
+ if(qualifiedNameImpl)
+ qualifiedNameImpl->deref();
+
return doc;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic