From 9b6da49ef5d5673015dea0744bbe1adeb9380f52 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 16 Apr 2010 13:30:51 -0700 Subject: EXT-6895 - Crash in landmarkNameCallback reviewed by Leyla --- indra/newview/llfavoritesbar.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index bf7c735488..959395ff82 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -75,7 +75,9 @@ public: mPosY(0), mPosZ(0), mLoaded(false) - {} + { + mHandle.bind(this); + } void setLandmarkID(const LLUUID& id) { mLandmarkID = id; } const LLUUID& getLandmarkId() const { return mLandmarkID; } @@ -122,17 +124,21 @@ private: if(LLLandmarkActions::getLandmarkGlobalPos(mLandmarkID, g_pos)) { LLLandmarkActions::getRegionNameAndCoordsFromPosGlobal(g_pos, - boost::bind(&LLLandmarkInfoGetter::landmarkNameCallback, this, _1, _2, _3, _4)); + boost::bind(&LLLandmarkInfoGetter::landmarkNameCallback, static_cast >(mHandle), _1, _2, _3, _4)); } } - void landmarkNameCallback(const std::string& name, S32 x, S32 y, S32 z) + static void landmarkNameCallback(LLHandle handle, const std::string& name, S32 x, S32 y, S32 z) { - mPosX = x; - mPosY = y; - mPosZ = z; - mName = name; - mLoaded = true; + LLLandmarkInfoGetter* getter = handle.get(); + if (getter) + { + getter->mPosX = x; + getter->mPosY = y; + getter->mPosZ = z; + getter->mName = name; + getter->mLoaded = true; + } } LLUUID mLandmarkID; @@ -141,6 +147,7 @@ private: S32 mPosY; S32 mPosZ; bool mLoaded; + LLRootHandle mHandle; }; /** -- cgit v1.2.3 From 0758eab5e62897297d6d16feea37df2c84c3aa1a Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 16 Apr 2010 14:41:26 -0700 Subject: Backed out changeset: 61a83065d146 --- indra/newview/skins/default/xui/en/panel_status_bar.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 8c7de22cf8..84664eedcc 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -99,7 +99,7 @@ image_pressed="Pause_Press" image_pressed_selected="Play_Press" is_toggle="true" - left_pad="20" + left_pad="15" top="1" name="media_toggle_btn" tool_tip="Start/Stop All Media (Music, Video, Web pages)" @@ -112,12 +112,12 @@ image_pressed="Audio_Press" image_unselected="Audio_Off" is_toggle="true" - left_pad="10" + left_pad="5" top="2" name="volume_btn" tool_tip="Global Volume Control" width="16" /> - + width="20"/> -- cgit v1.2.3 From 5a5380a65e05db01ef0fa416d098d600f3da41fc Mon Sep 17 00:00:00 2001 From: Paul Guslisty Date: Tue, 6 Apr 2010 20:28:29 +0300 Subject: Fixed major bug EXT-6572 (EXT-6572 ([VARIABLE IN WRONG PLACE] in Taskbar \"Kaufen L$\" should be \"L$ kaufen\") - Removed the L$ graphic and made \"L$\" part of the label string. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/172/ (transplanted from 4cbdcfc8b196f0ff28df1d0897023ee967cce2a3) --- indra/newview/skins/default/xui/en/panel_status_bar.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 84664eedcc..690d2971ee 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -62,11 +62,11 @@ halign="right" font="SansSerifSmall" follows="right|top" - image_selected="BuyArrow_Over" - image_unselected="BuyArrow_Over" - image_pressed="BuyArrow_Press" + image_selected="spacer35.tga" + image_unselected="spacer35.tga" + image_pressed="spacer35.tga" height="16" - label="Buy" + label="Buy L$" label_color="EmphasisColor" left_pad="0" label_shadow="false" -- cgit v1.2.3 From 1361d950561d03b9aa5f968cb38bff4e24fcd27f Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Thu, 15 Apr 2010 16:31:47 +0300 Subject: Updated fix for major bug EXT-6786 ('Stand' button is corrupted if movement control floater is opened) Added force hiding of Stand button to avoid seeing Stand & Move buttons at once for a short moment. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/233/ --HG-- branch : product-engine --- indra/newview/llmoveview.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index 4ccf5e1c7b..0ddc4efc81 100644 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -697,6 +697,7 @@ void LLPanelStandStopFlying::onStandButtonClick() gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); setFocus(FALSE); // EXT-482 + mStandButton->setVisible(FALSE); // force visibility changing to avoid seeing Stand & Move buttons at once. } void LLPanelStandStopFlying::onStopFlyingButtonClick() -- cgit v1.2.3 From 2347cf356e24eddba6dc8fb61dc37a3e1bcb8ac4 Mon Sep 17 00:00:00 2001 From: Eugene Mutavchi Date: Thu, 15 Apr 2010 17:06:04 +0300 Subject: Fixed critical EXT-6793 (/me does not work on Debug Channel) - added handling of "/me " and "/me'" messages by LLFloaterScriptDebug. Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/237/ --HG-- branch : product-engine --- indra/newview/llfloaterscriptdebug.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp index eeea71cc4c..d6732a9d5c 100644 --- a/indra/newview/llfloaterscriptdebug.cpp +++ b/indra/newview/llfloaterscriptdebug.cpp @@ -104,6 +104,10 @@ void LLFloaterScriptDebug::addScriptLine(const std::string &utf8mesg, const std: LLViewerObject* objectp = gObjectList.findObject(source_id); std::string floater_label; + // Handle /me messages. + std::string prefix = utf8mesg.substr(0, 4); + std::string message = (prefix == "/me " || prefix == "/me'") ? user_name + utf8mesg.substr(3) : utf8mesg; + if (objectp) { objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", TRUE, LLViewerTexture::BOOST_UI)); @@ -121,14 +125,14 @@ void LLFloaterScriptDebug::addScriptLine(const std::string &utf8mesg, const std: LLFloaterScriptDebugOutput* floaterp = LLFloaterReg::getTypedInstance("script_debug_output", LLUUID::null); if (floaterp) { - floaterp->addLine(utf8mesg, user_name, color); + floaterp->addLine(message, user_name, color); } // add to specific script instance floater floaterp = LLFloaterReg::getTypedInstance("script_debug_output", source_id); if (floaterp) { - floaterp->addLine(utf8mesg, floater_label, color); + floaterp->addLine(message, floater_label, color); } } -- cgit v1.2.3 From fae92a2df852992216eb24418a1dd0b676696bee Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 15 Apr 2010 16:55:34 +0100 Subject: some clean-up of lllfsthread to help me understand it, remove one extraneous close(). to be reviewed by bao. (transplanted from 17c6af7a2396f9890aab8226356a556b4d58a7d8) --- indra/llcommon/llapr.h | 4 ++-- indra/llvfs/lllfsthread.cpp | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h index b05a222b33..c1ad0bfed1 100644 --- a/indra/llcommon/llapr.h +++ b/indra/llcommon/llapr.h @@ -182,7 +182,7 @@ typedef LLAtomic32 LLAtomicU32; typedef LLAtomic32 LLAtomicS32; // File IO convenience functions. -// Returns NULL if the file fails to openm sets *sizep to file size of not NULL +// Returns NULL if the file fails to open, sets *sizep to file size if not NULL // abbreviated flags #define LL_APR_R (APR_READ) // "r" #define LL_APR_W (APR_CREATE|APR_TRUNCATE|APR_WRITE) // "w" @@ -200,7 +200,7 @@ typedef LLAtomic32 LLAtomicS32; // especially do not put some time-costly operations between open() and close(). // otherwise it might lock the APRFilePool. //there are two different apr_pools the APRFile can use: -// 1, a temperary pool passed to an APRFile function, which is used within this function and only once. +// 1, a temporary pool passed to an APRFile function, which is used within this function and only once. // 2, a global pool. // diff --git a/indra/llvfs/lllfsthread.cpp b/indra/llvfs/lllfsthread.cpp index e85cc437f4..49c198a82d 100644 --- a/indra/llvfs/lllfsthread.cpp +++ b/indra/llvfs/lllfsthread.cpp @@ -188,7 +188,7 @@ bool LLLFSThread::Request::processRequest() if (mOperation == FILE_READ) { llassert(mOffset >= 0); - LLAPRFile infile ; + LLAPRFile infile ; // auto-closes infile.open(mFileName, LL_APR_RB, mThread->getLocalAPRFilePool()); if (!infile.getFileHandle()) { @@ -204,7 +204,6 @@ bool LLLFSThread::Request::processRequest() llassert_always(off >= 0); mBytesRead = infile.read(mBuffer, mBytes ); complete = true; - infile.close() ; // llinfos << "LLLFSThread::READ:" << mFileName << " Bytes: " << mBytesRead << llendl; } else if (mOperation == FILE_WRITE) @@ -212,7 +211,7 @@ bool LLLFSThread::Request::processRequest() apr_int32_t flags = APR_CREATE|APR_WRITE|APR_BINARY; if (mOffset < 0) flags |= APR_APPEND; - LLAPRFile outfile ; + LLAPRFile outfile ; // auto-closes outfile.open(mFileName, flags, mThread->getLocalAPRFilePool()); if (!outfile.getFileHandle()) { @@ -232,7 +231,6 @@ bool LLLFSThread::Request::processRequest() } mBytesRead = outfile.write(mBuffer, mBytes ); complete = true; - // llinfos << "LLLFSThread::WRITE:" << mFileName << " Bytes: " << mBytesRead << "/" << mBytes << " Offset:" << mOffset << llendl; } else -- cgit v1.2.3 From 1c638961543909e897bc343d260f300202687723 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 15 Apr 2010 18:00:00 +0100 Subject: Supporting 'read from the end' doesn't make sense (to me), unlike 'write from the end'. Also, more comments. Also, try to avoid a seek when offset==0 in read. To be reviewed by Bao. (transplanted from 60eb013221a83ff76054ab7dcb1d07c108f51a9d) --- indra/llcommon/llapr.cpp | 11 +++++------ indra/llcommon/llapr.h | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp index ed70b1d9f2..7330b00bcf 100644 --- a/indra/llcommon/llapr.cpp +++ b/indra/llcommon/llapr.cpp @@ -543,14 +543,13 @@ S32 LLAPRFile::readEx(const std::string& filename, void *buf, S32 offset, S32 nb return 0; } - S32 off; - if (offset < 0) - off = LLAPRFile::seek(file_handle, APR_END, 0); - else - off = LLAPRFile::seek(file_handle, APR_SET, offset); + llassert(offset >= 0); + + if (offset > 0) + offset = LLAPRFile::seek(file_handle, APR_SET, offset); apr_size_t bytes_read; - if (off < 0) + if (offset < 0) { bytes_read = 0; } diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h index c1ad0bfed1..08cf11e593 100644 --- a/indra/llcommon/llapr.h +++ b/indra/llcommon/llapr.h @@ -255,12 +255,12 @@ public: // Returns bytes read/written, 0 if read/write fails: static S32 readEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL); - static S32 writeEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL); + static S32 writeEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool = NULL); // offset<0 means append //******************************************************************************************************************************* }; /** - * @brief Function which approprately logs error or remains quiet on + * @brief Function which appropriately logs error or remains quiet on * APR_SUCCESS. * @return Returns true if status is an error condition. */ -- cgit v1.2.3 From bd6e166a6653ac71a110d6fe353aa58f49e4a6d0 Mon Sep 17 00:00:00 2001 From: Eli Linden Date: Thu, 15 Apr 2010 11:09:04 -0700 Subject: EXT-6861 partial fix by restoring the "Buy" word. Complete fix pending next l10n cycle; DE linguistic --- indra/newview/skins/default/xui/de/notifications.xml | 2 +- indra/newview/skins/default/xui/de/panel_status_bar.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index c2f25c84b8..97387e9e87 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -1725,7 +1725,7 @@ Inventarobjekt(e) verschieben? Achtung: Die Klickaktion „Objekt bezahlen" wurde eingestellt. Diese funktioniert jedoch nicht, wenn ein Skript mit einer Geldtransaktion () hinzugefügt wird.
- +
diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 803bd1b5ab..0e182fa417 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -22,7 +22,7 @@ [AMT] L$