summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Linden <none@none>2013-01-08 23:50:27 -0800
committerRichard Linden <none@none>2013-01-08 23:50:27 -0800
commit0ba9a00c3116b69745f2d5070ce772d5d4965dbf (patch)
treed79795487a3bddf08ade8cef0a2a96d3e1ffb92f
parent2f91ffb45c44c3406b1b97dc987cfb7593852a46 (diff)
SH-3468 WIP add memory tracking base class
cleaned up hacks used to get unit tests working LLTrace::init now supports recursive initialization/cleanup put NOMINMAX back in win32 header wrappers
-rw-r--r--indra/llcommon/lltrace.cpp17
-rw-r--r--indra/llcommon/llwin32headers.h4
-rw-r--r--indra/llcommon/llwin32headerslean.h4
-rw-r--r--indra/test/io.cpp6
-rw-r--r--indra/test/llhttpdate_tut.cpp2
-rw-r--r--indra/test/lliohttpserver_tut.cpp2
-rw-r--r--indra/test/test.cpp2
-rw-r--r--indra/test_apps/llplugintest/llmediaplugintest.cpp1
8 files changed, 20 insertions, 18 deletions
diff --git a/indra/llcommon/lltrace.cpp b/indra/llcommon/lltrace.cpp
index 9cadd70dd8..463048008f 100644
--- a/indra/llcommon/lltrace.cpp
+++ b/indra/llcommon/lltrace.cpp
@@ -30,7 +30,7 @@
#include "lltracethreadrecorder.h"
#include "llfasttimer.h"
-static bool sInitialized;
+static S32 sInitializationCount = 0;
namespace LLTrace
{
@@ -39,19 +39,24 @@ static MasterThreadRecorder* gMasterThreadRecorder = NULL;
void init()
{
- gMasterThreadRecorder = new MasterThreadRecorder();
- sInitialized = true;
+ if (sInitializationCount++ == 0)
+ {
+ gMasterThreadRecorder = new MasterThreadRecorder();
+ }
}
bool isInitialized()
{
- return sInitialized;
+ return sInitializationCount > 0;
}
void cleanup()
{
- delete gMasterThreadRecorder;
- gMasterThreadRecorder = NULL;
+ if (--sInitializationCount == 0)
+ {
+ delete gMasterThreadRecorder;
+ gMasterThreadRecorder = NULL;
+ }
}
MasterThreadRecorder& getMasterThreadRecorder()
diff --git a/indra/llcommon/llwin32headers.h b/indra/llcommon/llwin32headers.h
index 9c89b6b280..8534ed6298 100644
--- a/indra/llcommon/llwin32headers.h
+++ b/indra/llcommon/llwin32headers.h
@@ -28,9 +28,13 @@
#define LL_LLWINDOWS_H
#ifdef LL_WINDOWS
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
#undef WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <windows.h>
+#undef NOMINMAX
#endif
#endif
diff --git a/indra/llcommon/llwin32headerslean.h b/indra/llcommon/llwin32headerslean.h
index d3fb90d4b1..f7e71301a8 100644
--- a/indra/llcommon/llwin32headerslean.h
+++ b/indra/llcommon/llwin32headerslean.h
@@ -28,9 +28,13 @@
#define LL_LLWINDOWS_H
#ifdef LL_WINDOWS
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <windows.h>
+#undef NOMINMAX
#endif
#endif
diff --git a/indra/test/io.cpp b/indra/test/io.cpp
index f2b4a5339c..b3eabc2e8a 100644
--- a/indra/test/io.cpp
+++ b/indra/test/io.cpp
@@ -831,7 +831,6 @@ namespace tut
public:
PumpAndChainTestData()
{
- LLCommon::initClass();
apr_pool_create(&mPool, NULL);
mPump = new LLPumpIO(mPool);
}
@@ -841,7 +840,6 @@ namespace tut
mChain.clear();
delete mPump;
apr_pool_destroy(mPool);
- LLCommon::cleanupClass();
}
};
typedef test_group<PumpAndChainTestData> PumpAndChainTestGroup;
@@ -912,7 +910,6 @@ namespace tut
pipe_and_pump_fitness()
{
- LLCommon::initClass();
LLFrameTimer::updateFrameTime();
apr_pool_create(&mPool, NULL);
mPump = new LLPumpIO(mPool);
@@ -927,7 +924,6 @@ namespace tut
mSocket.reset();
delete mPump;
apr_pool_destroy(mPool);
- LLCommon::cleanupClass();
}
protected:
@@ -1191,11 +1187,9 @@ namespace tut
LLSimpleRPCResponse(LLSD* response) :
mResponsePtr(response)
{
- LLCommon::initClass();
}
~LLSimpleRPCResponse()
{
- LLCommon::cleanupClass();
}
virtual bool response(LLPumpIO* pump)
{
diff --git a/indra/test/llhttpdate_tut.cpp b/indra/test/llhttpdate_tut.cpp
index d6f0ba5e66..ecf734ee90 100644
--- a/indra/test/llhttpdate_tut.cpp
+++ b/indra/test/llhttpdate_tut.cpp
@@ -41,11 +41,9 @@ namespace tut
{
httpdate_data()
{
- LLCommon::initClass();
}
~httpdate_data()
{
- LLCommon::cleanupClass();
}
LLDate some_date;
};
diff --git a/indra/test/lliohttpserver_tut.cpp b/indra/test/lliohttpserver_tut.cpp
index e7af09f80b..3fa5c8dd42 100644
--- a/indra/test/lliohttpserver_tut.cpp
+++ b/indra/test/lliohttpserver_tut.cpp
@@ -77,7 +77,6 @@ namespace tut
HTTPServiceTestData()
: mResponse(NULL)
{
- LLCommon::initClass();
LLHTTPStandardServices::useServices();
LLHTTPRegistrar::buildAllServices(mRoot);
mRoot.addNode("/delayed/echo", new DelayedEcho(this));
@@ -86,7 +85,6 @@ namespace tut
~HTTPServiceTestData()
{
- LLCommon::cleanupClass();
}
LLHTTPNode mRoot;
diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 8bd302ce7a..28de88201c 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -514,8 +514,8 @@ int main(int argc, char **argv)
#endif
ll_init_apr();
- LLTrace::init();
+ LLTrace::init();
apr_getopt_t* os = NULL;
if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, argc, argv))
{
diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp
index 99a82ed555..fa4f5abd28 100644
--- a/indra/test_apps/llplugintest/llmediaplugintest.cpp
+++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp
@@ -41,7 +41,6 @@
#if LL_WINDOWS
#pragma warning(disable: 4263)
#pragma warning(disable: 4264)
-#undef NOMINMAX
#endif
#if __APPLE__