[Libreoffice-commits] .: tools/inc tools/source

Joseph Powers jpowers at kemper.freedesktop.org
Thu Jul 7 20:07:22 PDT 2011


 tools/inc/tools/inetmsg.hxx   |   64 ++++++++++++++++++++++--------------------
 tools/source/inet/inetmsg.cxx |   23 +++++++--------
 2 files changed, 46 insertions(+), 41 deletions(-)

New commits:
commit 19c72796da1d2cb6eb3bfc0b2b3f583732cd372b
Author: Joseph Powers <jpowers27 at cox.net>
Date:   Thu Jul 7 19:10:14 2011 -0700

    Replace List with std::vector< INetMessageHeader* >

diff --git a/tools/inc/tools/inetmsg.hxx b/tools/inc/tools/inetmsg.hxx
index 26a650d..24928cf 100644
--- a/tools/inc/tools/inetmsg.hxx
+++ b/tools/inc/tools/inetmsg.hxx
@@ -36,6 +36,7 @@
 #include <tools/inetmime.hxx>
 #include <tools/stream.hxx>
 #include <tools/string.hxx>
+#include <vector>
 
 class DateTime;
 
@@ -108,13 +109,14 @@ public:
  * INetMessage Interface.
  *
  *=====================================================================*/
+ typedef ::std::vector< INetMessageHeader* > HeaderList_impl;
 class INetMessage
 {
-    List           m_aHeaderList;
+    HeaderList_impl m_aHeaderList;
 
-    sal_uIntPtr          m_nDocSize;
-    UniString      m_aDocName;
-    SvLockBytesRef m_xDocLB;
+    sal_uIntPtr     m_nDocSize;
+    UniString       m_aDocName;
+    SvLockBytesRef  m_xDocLB;
 
     void ListCleanup_Impl (void);
     void ListCopy (const INetMessage& rMsg);
@@ -123,38 +125,36 @@ protected:
     UniString GetHeaderName_Impl (
         sal_uIntPtr nIndex, rtl_TextEncoding eEncoding) const
     {
-        INetMessageHeader *p =
-            (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex));
-        if (p)
-            return UniString(p->GetName(), eEncoding);
-        else
+        if ( nIndex < m_aHeaderList.size() ) {
+            return UniString( m_aHeaderList[ nIndex ]->GetName(), eEncoding );
+        } else {
             return UniString();
+        }
     }
 
     UniString GetHeaderValue_Impl (
         sal_uIntPtr nIndex, INetMIME::HeaderFieldType eType) const
     {
-        INetMessageHeader *p =
-            (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex));
-        if (p)
-            return INetMIME::decodeHeaderFieldBody (eType, p->GetValue());
-        else
+        if ( nIndex < m_aHeaderList.size() ) {
+            return INetMIME::decodeHeaderFieldBody(eType, m_aHeaderList[ nIndex ]->GetValue());
+        } else {
             return UniString();
+        }
     }
 
     void SetHeaderField_Impl (
         const INetMessageHeader &rHeader, sal_uIntPtr &rnIndex)
     {
         INetMessageHeader *p = new INetMessageHeader (rHeader);
-        if (m_aHeaderList.Count() <= rnIndex)
+        if (m_aHeaderList.size() <= rnIndex)
         {
-            m_aHeaderList.Insert (p, LIST_APPEND);
-            rnIndex = m_aHeaderList.Count() - 1;
+            rnIndex = m_aHeaderList.size();
+            m_aHeaderList.push_back( p );
         }
         else
         {
-            p = (INetMessageHeader*)(m_aHeaderList.Replace(p, rnIndex));
-            delete p;
+            delete m_aHeaderList[ rnIndex ];
+            m_aHeaderList[ rnIndex ] = p;
         }
     }
 
@@ -188,7 +188,7 @@ public:
         return *this;
     }
 
-    sal_uIntPtr GetHeaderCount (void) const { return m_aHeaderList.Count(); }
+    sal_uIntPtr GetHeaderCount (void) const { return m_aHeaderList.size(); }
 
     UniString GetHeaderName (sal_uIntPtr nIndex) const
     {
@@ -202,21 +202,23 @@ public:
 
     INetMessageHeader GetHeaderField (sal_uIntPtr nIndex) const
     {
-        INetMessageHeader *p =
-            (INetMessageHeader*)(m_aHeaderList.GetObject(nIndex));
-        if (p)
-            return INetMessageHeader(*p);
-        else
+        if ( nIndex < m_aHeaderList.size() ) {
+            return INetMessageHeader( *m_aHeaderList[ nIndex ] );
+        } else {
             return INetMessageHeader();
+        }
     }
 
     sal_uIntPtr SetHeaderField (
         const UniString& rName,
         const UniString& rValue,
-        sal_uIntPtr            nIndex = LIST_APPEND);
+        sal_uIntPtr  nIndex = ((sal_uIntPtr)-1)
+    );
 
     virtual sal_uIntPtr SetHeaderField (
-        const INetMessageHeader &rField, sal_uIntPtr nIndex = LIST_APPEND);
+        const INetMessageHeader &rField,
+        sal_uIntPtr nIndex = ((sal_uIntPtr)-1)
+    );
 
     sal_uIntPtr GetDocumentSize (void) const { return m_nDocSize; }
     void  SetDocumentSize (sal_uIntPtr nSize) { m_nDocSize = nSize; }
@@ -287,7 +289,9 @@ public:
 
     using INetMessage::SetHeaderField;
     virtual sal_uIntPtr SetHeaderField (
-        const INetMessageHeader &rHeader, sal_uIntPtr nIndex = LIST_APPEND);
+        const INetMessageHeader &rHeader,
+        sal_uIntPtr nIndex = ((sal_uIntPtr)-1)
+    );
 
     /** Header fields.
      */
@@ -489,7 +493,9 @@ public:
 
     using INetRFC822Message::SetHeaderField;
     virtual sal_uIntPtr SetHeaderField (
-        const INetMessageHeader &rHeader, sal_uIntPtr nIndex = LIST_APPEND);
+        const INetMessageHeader &rHeader,
+        sal_uIntPtr nIndex = ((sal_uIntPtr)-1)
+    );
 
     /** Header fields.
      */
diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx
index 13ff543..776df97 100644
--- a/tools/source/inet/inetmsg.cxx
+++ b/tools/source/inet/inetmsg.cxx
@@ -64,7 +64,6 @@ inline sal_Unicode ascii_toLowerCase( sal_Unicode ch )
  *
  *=====================================================================*/
 #define CONSTASCII_STRINGPARAM(a) (a), RTL_TEXTENCODING_ASCII_US
-#define HEADERFIELD INetMessageHeader
 
 /*
  * ~INetMessage.
@@ -80,10 +79,10 @@ INetMessage::~INetMessage (void)
 void INetMessage::ListCleanup_Impl (void)
 {
     // Cleanup.
-    sal_uIntPtr i, n = m_aHeaderList.Count();
+    sal_uIntPtr i, n = m_aHeaderList.size();
     for (i = 0; i < n; i++)
-        delete ((HEADERFIELD*)(m_aHeaderList.GetObject(i)));
-    m_aHeaderList.Clear();
+        delete m_aHeaderList[ i ];
+    m_aHeaderList.clear();
 }
 
 /*
@@ -100,8 +99,8 @@ void INetMessage::ListCopy (const INetMessage &rMsg)
         sal_uIntPtr i, n = rMsg.GetHeaderCount();
         for (i = 0; i < n; i++)
         {
-            HEADERFIELD *p = (HEADERFIELD*)(rMsg.m_aHeaderList.GetObject(i));
-            m_aHeaderList.Insert (new HEADERFIELD(*p), LIST_APPEND);
+            INetMessageHeader *p = rMsg.m_aHeaderList[ i ];
+            m_aHeaderList.push_back( new INetMessageHeader(*p) );
         }
     }
 }
@@ -156,11 +155,11 @@ SvStream& INetMessage::operator<< (SvStream& rStrm) const
     rStrm << static_cast<sal_uInt32>(m_nDocSize);
     rStrm.WriteByteString (m_aDocName, RTL_TEXTENCODING_UTF8);
 
-    sal_uIntPtr i, n = m_aHeaderList.Count();
+    sal_uIntPtr i, n = m_aHeaderList.size();
     rStrm << static_cast<sal_uInt32>(n);
 
     for (i = 0; i < n; i++)
-        rStrm << *((HEADERFIELD *)(m_aHeaderList.GetObject(i)));
+        rStrm << *( m_aHeaderList[ i ] );
 
     return rStrm;
 }
@@ -188,9 +187,9 @@ SvStream& INetMessage::operator>> (SvStream& rStrm)
 
     for (i = 0; i < n; i++)
     {
-        HEADERFIELD *p = new HEADERFIELD();
+        INetMessageHeader *p = new INetMessageHeader();
         rStrm >> *p;
-        m_aHeaderList.Insert (p, LIST_APPEND);
+        m_aHeaderList.push_back( p );
     }
 
     // Done.
@@ -740,7 +739,7 @@ sal_uIntPtr INetRFC822Message::SetHeaderField (
             case INETMSG_RFC822_OK:
                 pData = pStop;
                 SetHeaderField_Impl (
-                    HEADERFIELD (HDR(nIdx), rHeader.GetValue()),
+                    INetMessageHeader (HDR(nIdx), rHeader.GetValue()),
                     m_nIndex[nIdx]);
                 nNewIndex = m_nIndex[nIdx];
                 break;
@@ -1186,7 +1185,7 @@ sal_uIntPtr INetMIMEMessage::SetHeaderField (
             case INETMSG_MIME_OK:
                 pData = pStop;
                 SetHeaderField_Impl (
-                    HEADERFIELD (MIMEHDR(nIdx), rHeader.GetValue()),
+                    INetMessageHeader (MIMEHDR(nIdx), rHeader.GetValue()),
                     m_nIndex[nIdx]);
                 nNewIndex = m_nIndex[nIdx];
                 break;


More information about the Libreoffice-commits mailing list