[mapguide-commits] r5179 - in branches/2.2/MgDev/Common: Foundation/System MapGuideCommon/System

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Sep 22 23:46:54 EDT 2010


Author: trevorwekel
Date: 2010-09-23 03:46:54 +0000 (Thu, 23 Sep 2010)
New Revision: 5179

Modified:
   branches/2.2/MgDev/Common/Foundation/System/ArgumentPacket.h
   branches/2.2/MgDev/Common/Foundation/System/BasicPacket.h
   branches/2.2/MgDev/Common/Foundation/System/BinaryStreamArgumentPacket.h
   branches/2.2/MgDev/Common/Foundation/System/CollectionPacket.h
   branches/2.2/MgDev/Common/Foundation/System/ControlPacket.h
   branches/2.2/MgDev/Common/Foundation/System/Disposable.h
   branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.cpp
   branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.h
   branches/2.2/MgDev/Common/Foundation/System/OperationResponsePacket.h
   branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp
   branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.h
   branches/2.2/MgDev/Common/MapGuideCommon/System/UserInformation.cpp
Log:
Ticket #1423 Linux std::string not thread safe
- Submit changes for Common



Modified: branches/2.2/MgDev/Common/Foundation/System/ArgumentPacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/ArgumentPacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/ArgumentPacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -25,9 +25,19 @@
 //  Argument Packet Wrapper Structure
 struct MgArgumentPacket : public MgBasicPacket
 {
-    MgArgumentPacket() : m_pData( NULL )      { };
+    MgArgumentPacket()
+    :
+    m_ArgumentType(0),
+    m_pData(NULL),
+    m_Length(0)
+    {
+    }
 
-    virtual ~MgArgumentPacket()               { delete[] m_pData; };
+    virtual ~MgArgumentPacket()
+    {
+        delete[] m_pData;
+        m_pData = NULL;
+    }
 
     UINT32      m_ArgumentType;
     UINT8*      m_pData;

Modified: branches/2.2/MgDev/Common/Foundation/System/BasicPacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/BasicPacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/BasicPacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -22,6 +22,12 @@
 //  Basic Packet Wrapper Structure
 struct MgBasicPacket
 {
+    MgBasicPacket()
+    :
+     m_PacketHeader(0)
+    {
+    }
+
     UINT32 m_PacketHeader;
 };
 /// \endcond

Modified: branches/2.2/MgDev/Common/Foundation/System/BinaryStreamArgumentPacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/BinaryStreamArgumentPacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/BinaryStreamArgumentPacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -25,6 +25,12 @@
 //  Binary Stream Argument Packet Wrapper Structure
 struct MgBinaryStreamArgumentPacket : public MgArgumentPacket
 {
+    MgBinaryStreamArgumentPacket()
+    :
+    m_Version(0)
+    {
+    }
+
     UINT32      m_Version;
 };
 /// \endcond

Modified: branches/2.2/MgDev/Common/Foundation/System/CollectionPacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/CollectionPacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/CollectionPacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -25,6 +25,12 @@
 //  Collection Packet Wrapper Structure
 struct MgCollectionPacket : public MgArgumentPacket
 {
+    MgCollectionPacket()
+    :
+     m_NumElements(0)
+    {
+    }
+
     UINT32  m_NumElements;
 };
 /// \endcond

Modified: branches/2.2/MgDev/Common/Foundation/System/ControlPacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/ControlPacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/ControlPacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -24,6 +24,13 @@
 //  Control Packet Wrapper Structure
 struct MgControlPacket : public MgBasicPacket
 {
+    MgControlPacket()
+    :
+    m_PacketVersion(0),
+    m_ControlID(0)
+    {
+    }
+
     UINT32 m_PacketVersion;
     UINT32 m_ControlID;
 };

Modified: branches/2.2/MgDev/Common/Foundation/System/Disposable.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/Disposable.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/Disposable.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -79,7 +79,7 @@
     /// \return
     /// Returns nothing
     ///
-    void SetRefCountFlag();
+    virtual void SetRefCountFlag();
 
 protected:
 

Modified: branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.cpp
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.cpp	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.cpp	2010-09-23 03:46:54 UTC (rev 5179)
@@ -79,6 +79,13 @@
 
 
 //////////////////////////////////////////////////////////////
+void MgGuardDisposable::SetRefCountFlag()
+{
+   ACE_MT(ACE_GUARD(ACE_Recursive_Thread_Mutex, ace_mon, m_mutex));
+   m_refCountFlag = true;
+}
+
+//////////////////////////////////////////////////////////////
 MgGuardDisposable::MgGuardDisposable()
 {
 }

Modified: branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/GuardDisposable.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -67,6 +67,15 @@
     ///
     virtual INT32 Release();
 
+    //////////////////////////////////////////////////////////////////
+    /// \brief
+    /// Sets the refcount flag for this object to true
+    ///
+    /// \return
+    /// Returns nothing
+    ///
+    void SetRefCountFlag();
+
 protected:
 
     //////////////////////////////////////////////////////////////////

Modified: branches/2.2/MgDev/Common/Foundation/System/OperationResponsePacket.h
===================================================================
--- branches/2.2/MgDev/Common/Foundation/System/OperationResponsePacket.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/Foundation/System/OperationResponsePacket.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -24,6 +24,14 @@
 //  Operation Response Packet Wrapper Structure
 struct MgOperationResponsePacket : public MgBasicPacket
 {
+    MgOperationResponsePacket()
+    : 
+    m_PacketVersion(0),
+    m_ECode(0),
+    m_NumReturnValues(0)
+    {
+    }
+
     UINT32 m_PacketVersion;
     UINT32 m_ECode;
     UINT32 m_NumReturnValues;

Modified: branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp
===================================================================
--- branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp	2010-09-23 03:46:54 UTC (rev 5179)
@@ -134,6 +134,8 @@
 const STRING MgConfigProperties::DefaultGeneralPropertyFdoPath                              = L"";
 const STRING MgConfigProperties::GeneralPropertyLicenseServerPath                           = L"LicenseServerPath";
 const STRING MgConfigProperties::DefaultGeneralPropertyLicenseServerPath                    = L"";
+const STRING MgConfigProperties::GeneralPropertyLinuxMemDebug                               = L"LinuxMemDebug";
+const bool   MgConfigProperties::DefaultGeneralPropertyLinuxMemDebug                        = false;
 const STRING MgConfigProperties::GeneralPropertyLogsDelimiter                               = L"LogsDelimiter";
 const STRING MgConfigProperties::DefaultGeneralPropertyLogsDelimiter                        = L"\t";
 const STRING MgConfigProperties::GeneralPropertyLogsDetail                                  = L"LogsDetail";
@@ -517,6 +519,7 @@
     { MgConfigProperties::GeneralPropertyDisplayName                                , MgPropertyType::String    , MG_CONFIG_MIN_OPTIONAL_STRING_LENGTH  , MG_CONFIG_MAX_OPTIONAL_STRING_LENGTH  , MG_CONFIG_FILE_NAME_RESERVED_CHARACTERS   },
     { MgConfigProperties::GeneralPropertyFdoPath                                    , MgPropertyType::String    , MG_CONFIG_MIN_PATH_LENGTH             , MG_CONFIG_MAX_PATH_LENGTH             , MG_CONFIG_PATH_RESERVED_CHARACTERS        },
     { MgConfigProperties::GeneralPropertyLicenseServerPath                          , MgPropertyType::String    , MG_CONFIG_MIN_OPTIONAL_STRING_LENGTH  , MG_CONFIG_MAX_OPTIONAL_STRING_LENGTH  , L""                                       },
+    { MgConfigProperties::GeneralPropertyLinuxMemDebug                              , MgPropertyType::Boolean   , 0                                     , 1                                     , L""                                       },
     { MgConfigProperties::GeneralPropertyLogsDelimiter                              , MgPropertyType::String    , 1                                     , 128                                   , L""                                       },
     { MgConfigProperties::GeneralPropertyLogsDetail                                 , MgPropertyType::String    , MG_CONFIG_MIN_OPTIONAL_STRING_LENGTH  , MG_CONFIG_MAX_OPTIONAL_STRING_LENGTH  , L""                                       },
     { MgConfigProperties::GeneralPropertyLogsPath                                   , MgPropertyType::String    , MG_CONFIG_MIN_PATH_LENGTH             , MG_CONFIG_MAX_PATH_LENGTH             , MG_CONFIG_PATH_RESERVED_CHARACTERS        },

Modified: branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.h
===================================================================
--- branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.h	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/MapGuideCommon/System/ConfigProperties.h	2010-09-23 03:46:54 UTC (rev 5179)
@@ -74,6 +74,10 @@
     static const STRING GeneralPropertyLicenseServerPath;               /// value("LicenseServerPath")
     static const STRING DefaultGeneralPropertyLicenseServerPath;        /// value("");
 
+    /// Memory allocator debugging for Linux
+    static const STRING GeneralPropertyLinuxMemDebug;               /// value("LinuxMemDebug")
+    static const bool DefaultGeneralPropertyLinuxMemDebug;        /// value(false);
+
     /// Sets the field delimiter in the logs
     static const STRING GeneralPropertyLogsDelimiter;                   /// value("LogsDelimiter")
     static const STRING DefaultGeneralPropertyLogsDelimiter;            /// value("\t")

Modified: branches/2.2/MgDev/Common/MapGuideCommon/System/UserInformation.cpp
===================================================================
--- branches/2.2/MgDev/Common/MapGuideCommon/System/UserInformation.cpp	2010-09-22 19:48:18 UTC (rev 5178)
+++ branches/2.2/MgDev/Common/MapGuideCommon/System/UserInformation.cpp	2010-09-23 03:46:54 UTC (rev 5179)
@@ -47,7 +47,7 @@
 ///</summary>
 MgUserInformation::MgUserInformation(CREFSTRING sessionId)
 {
-    SetMgSessionId(sessionId);
+    SetMgSessionId(sessionId.c_str());
     m_type = uitMgSession;
     m_apiVersion = MG_API_VERSION(1,0,0);
 }
@@ -69,8 +69,8 @@
 {
     MgUtil::CheckXss(userName);
 
-    m_username = userName;
-    m_password = password;
+    m_username = userName.c_str();
+    m_password = password.c_str();
     m_type = uitMg;
     m_apiVersion = MG_API_VERSION(1,0,0);
 }
@@ -103,13 +103,13 @@
 {
     if (&userInfo != this)
     {
-        m_username = userInfo.m_username;
-        m_password = userInfo.m_password;
-        m_sessionId = userInfo.m_sessionId;
-        m_locale = userInfo.m_locale;
+        m_username = userInfo.m_username.c_str();
+        m_password = userInfo.m_password.c_str();
+        m_sessionId = userInfo.m_sessionId.c_str();
+        m_locale = userInfo.m_locale.c_str();
         m_type = userInfo.m_type;
-        m_clientAgent = userInfo.m_clientAgent;
-        m_clientIp = userInfo.m_clientIp;
+        m_clientAgent = userInfo.m_clientAgent.c_str();
+        m_clientIp = userInfo.m_clientIp.c_str();
         m_apiVersion = userInfo.m_apiVersion;
     }
 
@@ -134,8 +134,8 @@
 {
     MgUtil::CheckXss(userName);
 
-    m_username = userName;
-    m_password = password;
+    m_username = userName.c_str();
+    m_password = password.c_str();
     m_type = uitMg;
 }
 
@@ -156,7 +156,7 @@
 ///<returns>
 /// Username stored
 ///</returns>
-STRING MgUserInformation::GetUserName() { return m_username; }
+STRING MgUserInformation::GetUserName() { return (STRING)m_username.c_str(); }
 
 ///////////////////////////////
 ///<summary>
@@ -165,7 +165,7 @@
 ///<returns>
 /// password stored
 ///</returns>
-STRING MgUserInformation::GetPassword() { return m_password; }
+STRING MgUserInformation::GetPassword() { return (STRING)m_password.c_str(); }
 
 ///////////////////////////////
 ///<summary>
@@ -173,7 +173,7 @@
 ///</summary>
 STRING MgUserInformation::GetMgSessionId()
 {
-    return m_sessionId;
+    return (STRING)m_sessionId.c_str();
 }
 
 ///////////////////////////////
@@ -200,7 +200,7 @@
         {
             SetLocale(sessionId.substr(sepChar+1, MG_LOCALE_LENGTH));
         }
-        m_sessionId = sessionId;
+        m_sessionId = sessionId.c_str();
     }
     else
     {
@@ -245,7 +245,7 @@
     else
     {
         // two-character locales remain case insensitive for legacy behavior
-        m_locale = locale;
+        m_locale = locale.c_str();
     }
 }
 
@@ -256,17 +256,17 @@
 ///</summary>
 STRING MgUserInformation::GetLocale()
 {
-    return m_locale;
+    return (STRING)m_locale.c_str();
 }
 
 void MgUserInformation::SetClientAgent(CREFSTRING agent)
 {
-    m_clientAgent = agent;
+    m_clientAgent = agent.c_str();
 }
 
 STRING MgUserInformation::GetClientAgent()
 {
-    return m_clientAgent;
+    return (STRING)m_clientAgent.c_str();
 }
 
 void MgUserInformation::SetClientIp(CREFSTRING ip)
@@ -275,12 +275,12 @@
     // Note that MgIpUtil::ValidateAddress is not used here because
     // an IP look up will affect peformance.
     MgUtil::CheckXss(ip);
-    m_clientIp = ip;
+    m_clientIp = ip.c_str();
 }
 
 STRING MgUserInformation::GetClientIp()
 {
-    return m_clientIp;
+    return (STRING)m_clientIp.c_str();
 }
 
 ///////////////////////////////
@@ -407,6 +407,8 @@
         throw new MgConnectionNotOpenException(L"MgSiteConnection.GetCurrentUserInfo", __LINE__, __WFILE__, NULL, L"", NULL);
     }
 
+    SAFE_ADDREF(userInfo);
+
     return userInfo;
 }
 
@@ -481,8 +483,8 @@
         MgCryptographyUtil cryptoUtil;
         string username, password;
 
-        cryptoUtil.DecryptCredentials(MgUtil::WideCharToMultiByte(credentials),
-            username, password);
+        string cred = MgUtil::WideCharToMultiByte(credentials);
+        cryptoUtil.DecryptCredentials(cred, username, password);
 
         MgUtil::MultiByteToWideChar(username, m_username);
         MgUtil::MultiByteToWideChar(password, m_password);



More information about the mapguide-commits mailing list