Merge branch 'master' of git://github.com/siana/SingularityViewer

This commit is contained in:
Lirusaito
2012-02-23 16:27:46 -05:00
7 changed files with 35 additions and 13 deletions

View File

@@ -70,6 +70,10 @@ if (WINDOWS)
/Oy-
)
# configure win32 API for windows XP+ compatibility
set(WINVER "0x0501" CACHE STRING "Win32 API Target version (see http://msdn.microsoft.com/en-us/library/aa383745%28v=VS.85%29.aspx)")
add_definitions("/DWINVER=${WINVER}" "/D_WIN32_WINNT=${WINVER}")
if(MSVC80 OR MSVC90 OR MSVC10)
set(CMAKE_CXX_FLAGS_RELEASE
"${CMAKE_CXX_FLAGS_RELEASE} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"

View File

@@ -244,17 +244,31 @@ void LLEventPumps::unregister(const LLEventPump& pump)
}
}
//static
bool LLEventPumps::sDeleted;
//static
void LLEventPumps::maybe_unregister(const LLEventPump& pump)
{
if (!sDeleted)
{
LLEventPumps::instance().unregister(pump);
}
}
LLEventPumps::~LLEventPumps()
{
// On destruction, delete every LLEventPump we instantiated (via
// obtain()). CAREFUL: deleting an LLEventPump calls its destructor, which
// calls unregister(), which removes that LLEventPump instance from
// mOurPumps. So an iterator loop over mOurPumps to delete contained
// LLEventPump instances is dangerous! Instead, delete them one at a time
// until mOurPumps is empty.
while (! mOurPumps.empty())
// Deleting an LLEventPump calls its destructor, which calls maybe_unregister(),
// which would try to remove that LLEventPump instance from a NEWLY created LLEventPumps
// singleton (as we're already being destructed). Therefore, mark that we're not
// home anymore... --Aleric
sDeleted = true;
// Subsequently we can delete every LLEventPump we instantiated (via obtain()).
// We're not clearing mPumpMap or mOurPumps here... their destructors will.
for (LLEventPumps::PumpSet::iterator pump = mOurPumps.begin(); pump != mOurPumps.end(); ++pump)
{
delete *mOurPumps.begin();
delete *pump;
}
}
@@ -280,7 +294,7 @@ LLEventPump::LLEventPump(const std::string& name, bool tweak):
LLEventPump::~LLEventPump()
{
// Unregister this doomed instance from LLEventPumps
LLEventPumps::instance().unregister(*this);
LLEventPumps::maybe_unregister(*this);
}
// static data member

View File

@@ -238,6 +238,8 @@ private:
* Unregister a doomed LLEventPump instance (internal)
*/
void unregister(const LLEventPump&);
static bool sDeleted;
static void maybe_unregister(const LLEventPump&);
private:
LLEventPumps();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -212,9 +212,9 @@
<key>windows</key>
<map>
<key>md5sum</key>
<string>17f89b854959b4d728be832d9c8184e4</string>
<string>ce5ce1050d039ef5c233c4f684437b16</string>
<key>url</key>
<uri>https://github.com/downloads/NickyPerian/imprudence/boost_1_45_VC100_libs_inc_patch4073.tar.bz2</uri>
<uri>https://bitbucket.org/Siana/singularityviewer/downloads/boost-1.45.0-windows-20120222.tar.bz2</uri>
</map>
</map>
</map>

View File

@@ -51,6 +51,7 @@ esac
case "$2" in
--commoninclude|--common-include|--common)
echo "Using common include directory"
INCPATH="libraries/include"
shift
;;
@@ -68,11 +69,11 @@ if [ -z "$FILEOUT" ]; then
fi
mkdir "$TMP"
cd "$TMP"
case "$FILEIN" in
http\:\/\/*|https\:\/\/*)
echo " Downloading..."
cd "$TMP"
wget "$FILEIN" -O package.tar.bz2
echo " Unpacking..."
tar -xjvf package.tar.bz2
@@ -85,6 +86,7 @@ case "$FILEIN" in
usage
fi
echo " Unpacking..."
cd "$TMP"
tar -xjvf "$FILEIN"
;;
esac
@@ -99,7 +101,7 @@ if [ -d lib/release ]; then
fi
if [ -d include ]; then
mkdir -p $INCPATH
mv -f include/* $LIBPATH
mv -f include/* $INCPATH
fi
echo " Packing..."