[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

kocienda kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:52:27 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 3a91b50b3816950c5017ccd7a3d671d72c27ce60
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 16 01:04:03 2001 +0000

    This fixes one major source of bugs we have been experiencing.
    The change is in adding back in some support for text decoding. This
    takes the place of some code that was using unterminated byte strings
    as c-style strings (with the unpredictable results one might expect).
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@459 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/kwq/KWQCString.mm b/WebCore/kwq/KWQCString.mm
index bb48df7..2a0a3fc 100644
--- a/WebCore/kwq/KWQCString.mm
+++ b/WebCore/kwq/KWQCString.mm
@@ -288,9 +288,9 @@ QCString &QCString::operator=(const QCString &s)
     return (QCString &)assign(s); 
 }
 
-QCString &QCString::operator=(const char *s)
-{ 
-    return (QCString &)duplicate(s, strlen(s) + 1); 
+QCString &QCString::operator=(const char *assignFrom)
+{
+    return (QCString &)duplicate(assignFrom, (assignFrom ? (strlen(assignFrom) + 1) : 1));
 }
 
 QCString& QCString::operator+=(const char *s)
@@ -324,21 +324,45 @@ QCString &QCString::operator+=(char c)
 
 bool operator==(const char *s1, const QCString &s2)
 {
+    if (s2.size() == 0 && !s1) {
+        return FALSE;
+    }
+    else if (s2.size() == 0 && s1) {
+        return TRUE;
+    }
     return (strcmp(s1, s2) == 0);
 }
 
 bool operator==(const QCString &s1, const char *s2)
 {
+    if (s1.size() == 0 && !s2) {
+        return FALSE;
+    }
+    else if (s1.size() == 0 && s2) {
+        return TRUE;
+    }
     return (strcmp(s1, s2) == 0);
 }
 
 bool operator!=(const char *s1, const QCString &s2)
 {
+    if (s2.size() == 0 && !s1) {
+        return TRUE;
+    }
+    else if (s2.size() == 0 && s1) {
+        return FALSE;
+    }
     return (strcmp(s1, s2) != 0);
 }
 
 bool operator!=(const QCString &s1, const char *s2)
 {
+    if (s1.size() == 0 && !s2) {
+        return TRUE;
+    }
+    else if (s1.size() == 0 && s2) {
+        return FALSE;
+    }
     return (strcmp(s1, s2) != 0);
 }
 
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index bba15c6..63d3f54 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -417,30 +417,10 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
 }
 
 
-void KHTMLPart::write( const char *str, int len)
+void KHTMLPart::write(const char *str, int len)
 {
     /* 
-    FIXME: hook this code back when we have decoders working
-    
-    if ( !d->m_decoder ) {
-        d->m_decoder = new khtml::Decoder();
-        if(d->m_encoding != QString::null)
-            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
-        else {
-            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
-        }
-    }
-    if ( len == 0 )
-        return;
-    
-    if ( len == -1 )
-        len = strlen( str );
-    
-    QString decoded = d->m_decoder->decode( str, len );
-        
-    
-    if(decoded.isEmpty())
-        return;
+    FIXME: hook this code back when we have decoders completely working
     
     if(d->m_bFirstData) {
         // determine the parse mode
@@ -466,9 +446,27 @@ void KHTMLPart::write( const char *str, int len)
     // End FIXME 
     */
 
-    // begin lines added in lieu of big fixme
+    // begin lines added in lieu of big fixme    
+
+    if ( !d->m_decoder ) {
+        d->m_decoder = new khtml::Decoder();
+        if(d->m_encoding != QString::null)
+            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
+        else {
+            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
+        }
+    }
+    if ( len == 0 )
+        return;
+    
+    if ( len == -1 )
+        len = strlen( str );
+    
+    QString decoded = d->m_decoder->decode( str, len );
+            
+    if(decoded.isEmpty())
+        return;
     
-    QString decoded = QString(str);
     d->m_doc->applyChanges(true, true);
     
     // end lines added in lieu of big fixme
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index bba15c6..63d3f54 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -417,30 +417,10 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
 }
 
 
-void KHTMLPart::write( const char *str, int len)
+void KHTMLPart::write(const char *str, int len)
 {
     /* 
-    FIXME: hook this code back when we have decoders working
-    
-    if ( !d->m_decoder ) {
-        d->m_decoder = new khtml::Decoder();
-        if(d->m_encoding != QString::null)
-            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
-        else {
-            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
-        }
-    }
-    if ( len == 0 )
-        return;
-    
-    if ( len == -1 )
-        len = strlen( str );
-    
-    QString decoded = d->m_decoder->decode( str, len );
-        
-    
-    if(decoded.isEmpty())
-        return;
+    FIXME: hook this code back when we have decoders completely working
     
     if(d->m_bFirstData) {
         // determine the parse mode
@@ -466,9 +446,27 @@ void KHTMLPart::write( const char *str, int len)
     // End FIXME 
     */
 
-    // begin lines added in lieu of big fixme
+    // begin lines added in lieu of big fixme    
+
+    if ( !d->m_decoder ) {
+        d->m_decoder = new khtml::Decoder();
+        if(d->m_encoding != QString::null)
+            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
+        else {
+            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
+        }
+    }
+    if ( len == 0 )
+        return;
+    
+    if ( len == -1 )
+        len = strlen( str );
+    
+    QString decoded = d->m_decoder->decode( str, len );
+            
+    if(decoded.isEmpty())
+        return;
     
-    QString decoded = QString(str);
     d->m_doc->applyChanges(true, true);
     
     // end lines added in lieu of big fixme
diff --git a/WebCore/kwq/KWQView.mm b/WebCore/kwq/KWQView.mm
index a8e22bf..cdd1f32 100644
--- a/WebCore/kwq/KWQView.mm
+++ b/WebCore/kwq/KWQView.mm
@@ -105,6 +105,7 @@
     return self;
 }
 
+#define DELAY_LAYOUT
 #ifdef DELAY_LAYOUT
 - delayLayout: sender
 {
diff --git a/WebCore/src/kwq/KWQCString.mm b/WebCore/src/kwq/KWQCString.mm
index bb48df7..2a0a3fc 100644
--- a/WebCore/src/kwq/KWQCString.mm
+++ b/WebCore/src/kwq/KWQCString.mm
@@ -288,9 +288,9 @@ QCString &QCString::operator=(const QCString &s)
     return (QCString &)assign(s); 
 }
 
-QCString &QCString::operator=(const char *s)
-{ 
-    return (QCString &)duplicate(s, strlen(s) + 1); 
+QCString &QCString::operator=(const char *assignFrom)
+{
+    return (QCString &)duplicate(assignFrom, (assignFrom ? (strlen(assignFrom) + 1) : 1));
 }
 
 QCString& QCString::operator+=(const char *s)
@@ -324,21 +324,45 @@ QCString &QCString::operator+=(char c)
 
 bool operator==(const char *s1, const QCString &s2)
 {
+    if (s2.size() == 0 && !s1) {
+        return FALSE;
+    }
+    else if (s2.size() == 0 && s1) {
+        return TRUE;
+    }
     return (strcmp(s1, s2) == 0);
 }
 
 bool operator==(const QCString &s1, const char *s2)
 {
+    if (s1.size() == 0 && !s2) {
+        return FALSE;
+    }
+    else if (s1.size() == 0 && s2) {
+        return TRUE;
+    }
     return (strcmp(s1, s2) == 0);
 }
 
 bool operator!=(const char *s1, const QCString &s2)
 {
+    if (s2.size() == 0 && !s1) {
+        return TRUE;
+    }
+    else if (s2.size() == 0 && s1) {
+        return FALSE;
+    }
     return (strcmp(s1, s2) != 0);
 }
 
 bool operator!=(const QCString &s1, const char *s2)
 {
+    if (s1.size() == 0 && !s2) {
+        return TRUE;
+    }
+    else if (s1.size() == 0 && s2) {
+        return FALSE;
+    }
     return (strcmp(s1, s2) != 0);
 }
 
diff --git a/WebCore/src/kwq/KWQKHTMLPart.mm b/WebCore/src/kwq/KWQKHTMLPart.mm
index bba15c6..63d3f54 100644
--- a/WebCore/src/kwq/KWQKHTMLPart.mm
+++ b/WebCore/src/kwq/KWQKHTMLPart.mm
@@ -417,30 +417,10 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
 }
 
 
-void KHTMLPart::write( const char *str, int len)
+void KHTMLPart::write(const char *str, int len)
 {
     /* 
-    FIXME: hook this code back when we have decoders working
-    
-    if ( !d->m_decoder ) {
-        d->m_decoder = new khtml::Decoder();
-        if(d->m_encoding != QString::null)
-            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
-        else {
-            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
-        }
-    }
-    if ( len == 0 )
-        return;
-    
-    if ( len == -1 )
-        len = strlen( str );
-    
-    QString decoded = d->m_decoder->decode( str, len );
-        
-    
-    if(decoded.isEmpty())
-        return;
+    FIXME: hook this code back when we have decoders completely working
     
     if(d->m_bFirstData) {
         // determine the parse mode
@@ -466,9 +446,27 @@ void KHTMLPart::write( const char *str, int len)
     // End FIXME 
     */
 
-    // begin lines added in lieu of big fixme
+    // begin lines added in lieu of big fixme    
+
+    if ( !d->m_decoder ) {
+        d->m_decoder = new khtml::Decoder();
+        if(d->m_encoding != QString::null)
+            d->m_decoder->setEncoding(d->m_encoding.latin1(), d->m_haveEncoding);
+        else {
+            //FIXME: d->m_decoder->setEncoding(settings()->encoding().latin1(), d->m_haveEncoding);
+        }
+    }
+    if ( len == 0 )
+        return;
+    
+    if ( len == -1 )
+        len = strlen( str );
+    
+    QString decoded = d->m_decoder->decode( str, len );
+            
+    if(decoded.isEmpty())
+        return;
     
-    QString decoded = QString(str);
     d->m_doc->applyChanges(true, true);
     
     // end lines added in lieu of big fixme
diff --git a/WebCore/src/kwq/KWQView.mm b/WebCore/src/kwq/KWQView.mm
index a8e22bf..cdd1f32 100644
--- a/WebCore/src/kwq/KWQView.mm
+++ b/WebCore/src/kwq/KWQView.mm
@@ -105,6 +105,7 @@
     return self;
 }
 
+#define DELAY_LAYOUT
 #ifdef DELAY_LAYOUT
 - delayLayout: sender
 {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list