[SCM] A client for connecting to 3D metaverses such as Linden Labs Secondlife(tm) and OpenSim grids branch, master, updated. byteme/1.20.7-1-10-g91941d4
Robin Cornelius
robin.cornelius at gmail.com
Thu May 29 16:59:04 UTC 2008
The following commit has been merged in the master branch:
commit 86b70162823912e9768bbc5579ccd9743002a975
Author: Robin Cornelius <robin.cornelius at gmail.com>
Date: Thu May 29 12:35:54 2008 +0100
revert code to pre patched version in tree
diff --git a/indra/SConstruct b/indra/SConstruct
index 1fbb686..bfc30aa 100644
--- a/indra/SConstruct
+++ b/indra/SConstruct
@@ -163,6 +163,9 @@ standalone_net_pkgs = [
'libssl',
]
+if enable_gstreamer:
+ standalone_pkgs.append( 'gstreamer-0.10' )
+
def pkgconfig(opt, pkgs=None):
if pkgs is None:
pkgs = standalone_pkgs + standalone_net_pkgs
@@ -177,6 +180,8 @@ if standalone:
'packages: %s' % ' '.join(missing))
sys.exit(2)
+
+
#####################
# ITERATE TARGETS #
#####################
diff --git a/indra/llaudio/audioengine_fmod.cpp b/indra/llaudio/audioengine_fmod.cpp
index 271074e..2142e67 100644
--- a/indra/llaudio/audioengine_fmod.cpp
+++ b/indra/llaudio/audioengine_fmod.cpp
@@ -335,6 +335,13 @@ void LLAudioEngine_FMOD::initWind()
void LLAudioEngine_FMOD::cleanupWind()
{
+#if LL_RELEASE_FOR_DOWNLOAD
+ // This hack exists because fmod likes to occasionally hang forever
+ // when shutting down for no apparent reason.
+ llwarns << "Hack, skipping audio engine cleanup" << llendflush;
+ return;
+#endif
+
if (gWindDSP)
{
FSOUND_DSP_SetActive(gWindDSP, FALSE);
diff --git a/indra/llimage/llimagejpeg.cpp b/indra/llimage/llimagejpeg.cpp
index 0ffa838..00b0e30 100644
--- a/indra/llimage/llimagejpeg.cpp
+++ b/indra/llimage/llimagejpeg.cpp
@@ -35,6 +35,8 @@
#include "llerror.h"
+static jmp_buf gSetjmpBuffer;
+
LLImageJPEG::LLImageJPEG()
:
LLImageFormatted(IMG_CODEC_JPEG),
@@ -77,6 +79,14 @@ BOOL LLImageJPEG::updateData()
jerr.emit_message = &LLImageJPEG::errorEmitMessage; // Conditionally emit a trace or warning message
jerr.output_message = &LLImageJPEG::errorOutputMessage; // Routine that actually outputs a trace or error message
+ // Establish the setjmp return context mSetjmpBuffer. Used by library to abort.
+ if( setjmp(gSetjmpBuffer) )
+ {
+ // If we get here, the JPEG code has signaled an error.
+ jpeg_destroy_decompress(&cinfo);
+ return FALSE;
+ }
+
try
{
// Now we can initialize the JPEG decompression object.
@@ -209,6 +219,14 @@ BOOL LLImageJPEG::decode(LLImageRaw* raw_image, F32 decode_time)
jerr.output_message = &LLImageJPEG::errorOutputMessage; // Routine that actually outputs a trace or error message
+ // Establish the setjmp return context mSetjmpBuffer. Used by library to abort.
+ if( setjmp(gSetjmpBuffer) )
+ {
+ // If we get here, the JPEG code has signaled an error.
+ jpeg_destroy_decompress(&cinfo);
+ return FALSE;
+ }
+
try
{
// Now we can initialize the JPEG decompression object.
diff --git a/indra/llimagej2coj/llimagej2coj.cpp b/indra/llimagej2coj/llimagej2coj.cpp
index 478cc84..27601c0 100644
--- a/indra/llimagej2coj/llimagej2coj.cpp
+++ b/indra/llimagej2coj/llimagej2coj.cpp
@@ -416,9 +416,15 @@ BOOL LLImageJ2COJ::getMetadata(LLImageJ2C &base)
/* open a byte stream */
cio = opj_cio_open((opj_common_ptr)dinfo, base.getData(), base.getDataSize());
- /* decode the stream and fill the image structure */
- image = opj_decode(dinfo, cio);
+ /* decode the stream and fill the image structure, also fill in an additional
+ structure to get the decoding result. This structure is a bit unusual in that
+ it is not received through opj, but still has some dynamically allocated fields
+ that need to be cleared up at the end by calling a destroy function. */
+ opj_codestream_info_t cinfo;
+ memset(&cinfo, 0, sizeof(opj_codestream_info_t));
+ image = opj_decode_with_info(dinfo, cio, &cinfo);
+
/* close the byte stream */
opj_cio_close(cio);
diff --git a/indra/llmedia/llmediaimplgstreamer.cpp b/indra/llmedia/llmediaimplgstreamer.cpp
index 5bf30d9..4ec4477 100644
--- a/indra/llmedia/llmediaimplgstreamer.cpp
+++ b/indra/llmedia/llmediaimplgstreamer.cpp
@@ -623,4 +623,25 @@ setVolume(float volume)
return false;
}
+bool LLMediaImplGStreamer::isPaused()
+{
+
+ if(getStatus() == LLMediaBase::STATUS_PAUSED)
+ return true;
+
+ return false;
+
+}
+
+bool LLMediaImplGStreamer::isPlaying()
+{
+
+ if(getStatus() == LLMediaBase::STATUS_STARTED)
+ return true;
+
+ return false;
+
+}
+
+
#endif // LL_GSTREAMER_ENABLED
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 9693df4..bdde8f7 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -1617,6 +1617,11 @@ BOOL LLScrollListCtrl::setSelectedByValue(const LLSD& value, BOOL selected)
BOOL LLScrollListCtrl::isSelected(const LLSD& value) const
{
+ if (!getCanSelect())
+ {
+ return NULL;
+ }
+
item_list::const_iterator iter;
for (iter = mItemList.begin(); iter != mItemList.end(); iter++)
{
diff --git a/indra/llvfs/lldir_win32.cpp b/indra/llvfs/lldir_win32.cpp
index ae87aa1..8d91415 100644
--- a/indra/llvfs/lldir_win32.cpp
+++ b/indra/llvfs/lldir_win32.cpp
@@ -58,6 +58,10 @@ LLDir_Win32::LLDir_Win32()
mOSUserDir = utf16str_to_utf8str(llutf16string(w_str));
+ // Init this to a sensible location it will be updated once we try to login but it could
+ // be used as a write location before then.
+ mLindenUserDir = mOSUserDir;
+
// Local Settings\Application Data is where cache files should
// go, they don't get copied to the server if the user moves his
// profile around on the network. JC
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 0d1d622..339466b 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -68,6 +68,9 @@ extern BOOL gDebugWindowProc;
const S32 MAX_NUM_RESOLUTIONS = 32;
+// static variable for ATI mouse cursor crash-bug work around:
+static int ATIbug = FALSE;
+
//
// LLWindowSDL
//
diff --git a/indra/llxml/llxmlparser.cpp b/indra/llxml/llxmlparser.cpp
index 3b4d944..0e6d14b 100644
--- a/indra/llxml/llxmlparser.cpp
+++ b/indra/llxml/llxmlparser.cpp
@@ -129,6 +129,9 @@ exit_label:
llwarns << mAuxErrorString << llendl;
}
+ setlocale(LC_ALL, saved_locale.c_str() );
+
+
return success;
}
diff --git a/indra/newview/linux_tools/launch_url.sh b/indra/newview/linux_tools/launch_url.sh
index d2c8919..a855a28 100755
--- a/indra/newview/linux_tools/launch_url.sh
+++ b/indra/newview/linux_tools/launch_url.sh
@@ -54,6 +54,13 @@ if which kfmclient >/dev/null; then
exit
fi
+# else gnome-open
+# (embodies gnome concept of 'preferred browser')
+if which gnome-open >/dev/null; then
+ gnome-open "$URL" &
+ exit
+fi
+
# else x-www-browser
# (Debianesque idea of a working X browser)
if which x-www-browser >/dev/null; then
diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh
index eaa2f61..29791d6 100755
--- a/indra/newview/linux_tools/wrapper.sh
+++ b/indra/newview/linux_tools/wrapper.sh
@@ -57,6 +57,11 @@ if [ "$GTK_IM_MODULE" = "scim" ]; then
fi
+## - Work around the ATI mouse cursor crash bug:
+if lsmod | grep fglrx &>/dev/null ; then
+ export LL_ATI_MOUSE_CURSOR_BUG=x
+fi
+
## Nothing worth editing below this line.
##-------------------------------------------------------------------
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 75c7cce..6804759 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -490,6 +490,8 @@ BOOL LLMuteList::autoRemove(const LLUUID& agent_id, const EAutoReason reason, co
removed = TRUE;
remove(automute);
+ U32 *preason = new U32(reason);
+
if (first_name.empty() && last_name.empty())
{
char cache_first[DB_FIRST_NAME_BUF_SIZE]; /* Flawfinder: ignore */
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 52f4d1a..82ed8b3 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -645,6 +645,9 @@ BOOL idle_startup()
LLViewerMedia::initClass();
LLViewerParcelMedia::initClass();
+ if (gAudiop)
+ gAudiop->InitStreamer();
+
if (gViewerWindow)
{
audio_update_volume(true);
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 2e4283b..dd98410 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -54,6 +54,9 @@ class LLTextureFetchWorker : public LLWorkerClass
{
friend class LLTextureFetch;
+public:
+ BOOL mAccelerateDownloadStuckTexture;
+
private:
#if 0
class URLResponder : public LLHTTPClient::Responder
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index c492c7b..7a378a9 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -929,6 +929,12 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop,
{
LLInventoryObject* cargo = locateInventory(item, cat);
+ if (!cargo)
+ {
+ handled = FALSE;
+ break;
+ }
+
EAcceptance item_acceptance = ACCEPT_NO;
handled = handled && root_view->handleDragAndDrop(x, y, mask, FALSE,
mCargoTypes[mCurItemIndex],
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index bd8ed97..d0e6f5b 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -700,6 +700,10 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
{
objectp = *kill_iter;
killObject(objectp);
+
+ // invalidate region pointer. region will become invalid, but
+ // refcounted objects may survive the cleanDeadObjects() call below
+ objectp->mRegionp = NULL;
}
}
--
A client for connecting to 3D metaverses such as Linden Labs Secondlife(tm) and OpenSim grids
More information about the Pkg-games-commits
mailing list