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

List:       kde-commits
Subject:    kdelibs/kabc
From:       Szombathelyi György <gyurco () freemail ! hu>
Date:       2004-10-12 20:24:44
Message-ID: 20041012202444.100AE16C4A () office ! kde ! org
[Download RAW message or body]

CVS commit by gyurco: 

Don't mess with user supplied QByteArray in endLDIF(). (#87827)
Also some simplification in setRawData()-resetRawData() calls.


  M +22 -13    ldif.cpp   1.12


--- kdelibs/kabc/ldif.cpp  #1.11:1.12
@@ -26,6 +26,4 @@
 using namespace KABC;
 
-static const char delimiter[ 3 ] = { '\n', '\n', '\n' };
-
 LDIF::LDIF()
 {
@@ -91,7 +89,9 @@ QCString LDIF::assembleLine( const QStri
   QByteArray tmp;
   uint valuelen = value.length();
-  tmp.setRawData( value, valuelen );
+  const char *data = value.data();
+
+  tmp.setRawData( data, valuelen );
   ret = assembleLine( fieldname, tmp, linelen, url );
-  tmp.resetRawData( value, valuelen );
+  tmp.resetRawData( data, valuelen );
   return ret;
 
@@ -109,4 +109,5 @@ bool LDIF::splitLine( const QCString &li
   QByteArray tmp;
   int linelen;
+  const char *data;
 
 //  kdDebug(5700) << "splitLine line: " << QString::fromUtf8(line) << endl;
@@ -119,7 +120,8 @@ bool LDIF::splitLine( const QCString &li
     str = line.stripWhiteSpace();
     linelen = str.length();
-    tmp.setRawData( str.data(), linelen );
+    data = str.data();
+    tmp.setRawData( data, linelen );
     value = tmp.copy();
-    tmp.resetRawData( str.data(), linelen );
+    tmp.resetRawData( data, linelen );
 //    kdDebug(5700) << "value : " << value[0] << endl;
     return false;
@@ -136,7 +138,8 @@ bool LDIF::splitLine( const QCString &li
       return false;
     }
-    tmp.setRawData( &line.data()[ position + 3 ], linelen - position - 3 );
+    data = &line.data()[ position + 3 ];
+    tmp.setRawData( data, linelen - position - 3 );
     KCodecs::base64Decode( tmp, value );
-    tmp.resetRawData( &line.data()[ position + 3 ], linelen - position - 3 );
+    tmp.resetRawData( data, linelen - position - 3 );
     return false;
   }
@@ -150,7 +153,8 @@ bool LDIF::splitLine( const QCString &li
       return false;
     }
-    tmp.setRawData( &line.data()[ position + 3 ], linelen - position - 3 );
+    data = &line.data()[ position + 3];
+    tmp.setRawData( data, linelen - position - 3 );
     value = tmp.copy();
-    tmp.resetRawData( &line.data()[ position + 3 ], linelen - position - 3 );
+    tmp.resetRawData( data, linelen - position - 3 );
     return true;
   }
@@ -161,7 +165,8 @@ bool LDIF::splitLine( const QCString &li
     return false;
   }
-  tmp.setRawData( &line.data()[ position + 2 ], linelen - position - 2 );
+  data = &line.data()[ position + 2 ];
+  tmp.setRawData( data, linelen - position - 2 );
   value = tmp.copy();
-  tmp.resetRawData( &line.data()[ position + 2 ], linelen - position - 2 );
+  tmp.resetRawData( data, linelen - position - 2 );
   return false;
 }
@@ -339,5 +344,9 @@ LDIF::ParseVal LDIF::nextItem()
 void LDIF::endLDIF()
 {
-  mLdif.resetRawData( delimiter, 3 );  
+  QByteArray tmp( 3 );
+  tmp[ 0 ] = '\n';
+  tmp[ 1 ] = '\n';
+  tmp[ 2 ] = '\n';
+  mLdif = tmp;
   mPos = 0;
 }


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

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