[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