[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-11-26 17:38:51
Message-ID: 1133026731.701930.14507.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 483485 by buis:

More fixes, now dom tests show comparable situation as before exceptioncode patch. \
Still a few cleanups and crash fixes to do though...


 M  +6 -7      kdom/core/DOMImplementationImpl.cpp  
 M  +3 -2      kdom/core/DOMImplementationImpl.h  
 M  +6 -1      kdom/parser/KDOMDocumentBuilder.cpp  
 M  +4 -1      ksvg2/misc/KSVGDocumentBuilder.cpp  
 M  +10 -6     ksvg2/svg/SVGDOMImplementationImpl.cpp  
 M  +1 -1      ksvg2/svg/SVGDOMImplementationImpl.h  


--- trunk/kdenonbeta/kdom/core/DOMImplementationImpl.cpp #483484:483485
@@ -149,7 +149,6 @@
 DocumentImpl *DOMImplementationImpl::createDocument(DOMStringImpl *namespaceURI,
                                                     DOMStringImpl *qualifiedName,
                                                     DocumentTypeImpl *docType,
-//                                                    KDOMView *,
                                                     int &exceptioncode) const
 {
     if(namespaceURI)
@@ -161,7 +160,7 @@
     Helper::CheckQualifiedName(qualifiedName, namespaceURI, temp, 
                                false /*nameCanBeNull*/,
                                false /*nameCanBeEmpty, see #61650*/,
-							   exceptioncode);
+                               exceptioncode);
     if(exceptioncode)
         return 0;
 
@@ -191,9 +190,9 @@
                                                     DOMStringImpl *qualifiedName,
                                                     DocumentTypeImpl *docType,
                                                     bool createDocElement,
-                                                    KDOMView *view) const
+                                                    KDOMView *view,
+                                                    int &exceptioncode) const
 {
-    int exceptioncode = 0;
     if(namespaceURI)
         namespaceURI->ref();
     if(qualifiedName)
@@ -211,9 +210,9 @@
      * See bug report #61650, http://bugs.kde.org/show_bug.cgi?id=61650
      */
     Helper::CheckQualifiedName(qualifiedName, namespaceURI, temp, 
-                               true /*nameCanBeNull*/,
-                               true /*nameCanBeEmpty, see #61650*/,
-							   exceptioncode);
+                               false /*nameCanBeNull*/,
+                               false /*nameCanBeEmpty, see #61650*/,
+                               exceptioncode);
     if(exceptioncode)
         return 0;
 
--- trunk/kdenonbeta/kdom/core/DOMImplementationImpl.h #483484:483485
@@ -82,8 +82,9 @@
         virtual DocumentImpl *createDocument(DOMStringImpl *namespaceURI,
                                              DOMStringImpl *qualifiedName,
                                              DocumentTypeImpl *doctype,
-											 bool createDocElement,
-                                             KDOMView *view) const;
+                                             bool createDocElement,
+                                             KDOMView *view,
+                                             int &exceptioncode) const;
 
         virtual CSSStyleSheetImpl *createCSSStyleSheet(DOMStringImpl *title,
                                                        DOMStringImpl *media,
--- trunk/kdenonbeta/kdom/parser/KDOMDocumentBuilder.cpp #483484:483485
@@ -78,11 +78,16 @@
 
     if(!d->doc)
     {
+        int exceptioncode = 0;
         DOMImplementationImpl *factory = DOMImplementationImpl::self();
         d->doc = factory->createDocument(DOMString("doc").impl(),
                                          DOMString("name").impl(),
                                          factory->defaultDocumentType(),
-                                         false, 0/* no view */ );
+                                         false, 0/* no view */, exceptioncode);
+        if(exceptioncode) {
+            Helper::ShowException(new DOMExceptionImpl(exceptioncode));
+            return false;
+        }
         d->doc->ref();
     }
 
--- trunk/kdenonbeta/ksvg2/misc/KSVGDocumentBuilder.cpp #483484:483485
@@ -50,9 +50,12 @@
 {
     kdDebug(26001) << "KSVG::DocumentBuilder::startDocument, uri = " << \
uri.prettyURL() << endl;  
+    int exceptioncode = 0;
     SVGDOMImplementationImpl *factory = SVGDOMImplementationImpl::self();
     SVGDocumentImpl *docImpl = static_cast<SVGDocumentImpl \
                *>(factory->createDocument(KDOM::NS_SVG.impl(), \
                KDOM::DOMString("svg:svg").impl(),
-                                                              \
factory->defaultDocumentType(), false, m_view)); +                                    \
factory->defaultDocumentType(), false, m_view, exceptioncode)); +    \
if(exceptioncode) +        return false;
 
     if(!docImpl)
         return false;
--- trunk/kdenonbeta/ksvg2/svg/SVGDOMImplementationImpl.cpp #483484:483485
@@ -168,10 +168,10 @@
 
 KDOM::DocumentImpl *SVGDOMImplementationImpl::createDocument(KDOM::DOMStringImpl \
*namespaceURI, KDOM::DOMStringImpl *qualifiedNameImpl, KDOM::DocumentTypeImpl \
*doctype, int &exceptioncode) const  {
-    return createDocument(namespaceURI, qualifiedNameImpl, doctype, true, 0);
+    return createDocument(namespaceURI, qualifiedNameImpl, doctype, true, 0, \
exceptioncode);  }
 
-KDOM::DocumentImpl *SVGDOMImplementationImpl::createDocument(KDOM::DOMStringImpl \
*namespaceURIImpl, 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, int &exceptioncode) const  {
     if(namespaceURIImpl)
         namespaceURIImpl->ref();
@@ -180,14 +180,18 @@
     KDOM::DOMString namespaceURI(namespaceURIImpl);
     KDOM::DOMString qualifiedName(qualifiedNameImpl);
     if((namespaceURI != KDOM::NS_SVG) || (qualifiedName != "svg" && qualifiedName != \
                "svg:svg"))
-        return KDOM::DOMImplementationImpl::createDocument(namespaceURIImpl, \
qualifiedNameImpl, doctype, createDocElement, view); +        return \
KDOM::DOMImplementationImpl::createDocument(namespaceURIImpl, qualifiedNameImpl, \
doctype, createDocElement, view, exceptioncode);  int dummy;
-    KDOM::Helper::CheckQualifiedName(qualifiedNameImpl, namespaceURIImpl, dummy, \
false /*nameCanBeNull*/, false /*nameCanBeEmpty, see #61650*/, dummy); +    \
KDOM::Helper::CheckQualifiedName(qualifiedNameImpl, namespaceURIImpl, dummy, false \
/*nameCanBeNull*/, false /*nameCanBeEmpty, see #61650*/, exceptioncode); +    \
if(exceptioncode) +        return 0;
 
     // WRONG_DOCUMENT_ERR: Raised if docType has already been used with a different
     //                     document or was created from a different implementation.
-    if(doctype != 0 && doctype->ownerDocument() != 0)
-            throw new KDOM::DOMExceptionImpl(KDOM::WRONG_DOCUMENT_ERR);
+    if(doctype != 0 && doctype->ownerDocument() != 0) {
+            exceptioncode = KDOM::WRONG_DOCUMENT_ERR;
+            return 0;
+    }
 
     SVGDocumentImpl *doc = new SVGDocumentImpl(const_cast<SVGDOMImplementationImpl \
*>(this), view);  
--- trunk/kdenonbeta/ksvg2/svg/SVGDOMImplementationImpl.h #483484:483485
@@ -48,7 +48,7 @@
         bool hasFeature(KDOM::DOMStringImpl *feature, KDOM::DOMStringImpl *version) \
const;  KDOM::DocumentTypeImpl *createDocumentType(KDOM::DOMStringImpl \
*qualifiedName, KDOM::DOMStringImpl *publicId, KDOM::DOMStringImpl *systemId, int \
&exceptioncode) const;  KDOM::DocumentImpl *createDocument(KDOM::DOMStringImpl \
*namespaceURI, KDOM::DOMStringImpl *qualifiedName, KDOM::DocumentTypeImpl *doctype, \
                int &exceptioncode) const;
-        KDOM::DocumentImpl *createDocument(KDOM::DOMStringImpl *namespaceURI, \
KDOM::DOMStringImpl *qualifiedName, KDOM::DocumentTypeImpl *doctype, bool \
createDocElement, KDOM::KDOMView *view) const; +        KDOM::DocumentImpl \
*createDocument(KDOM::DOMStringImpl *namespaceURI, KDOM::DOMStringImpl \
*qualifiedName, KDOM::DocumentTypeImpl *doctype, bool createDocElement, \
KDOM::KDOMView *view, int &exceptioncode) const;  
         virtual KDOM::CSSStyleSheetImpl *createCSSStyleSheet(KDOM::DOMStringImpl \
*title, KDOM::DOMStringImpl *media, int &exceptioncode) const;  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic