[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