The following commit has been merged in the master branch:
commit 86b70162823912e9768bbc5579ccd9743002a975
Author: Robin Cornelius <[EMAIL PROTECTED]>
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

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to