From 54995e0828de31201710c99e8d51944e39cca582 Mon Sep 17 00:00:00 2001 From: Mark Palange Date: Fri, 6 Feb 2009 19:45:56 +0000 Subject: svn merge -r109009:109164 svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer_1-22 Merge-back of non-voice related viewer 1.22 RC8 changes to trunk. QAR-1242 --- indra/newview/llappviewer.cpp | 3 + indra/newview/llviewerdisplay.cpp | 2 - indra/newview/llwindebug.cpp | 56 ++- .../newview/skins/default/xui/de/floater_about.xml | 2 +- .../default/xui/de/panel_group_land_money.xml | 2 +- .../newview/skins/default/xui/fr/floater_about.xml | 2 +- .../default/xui/fr/panel_group_land_money.xml | 2 +- .../newview/skins/default/xui/ja/floater_about.xml | 2 +- .../skins/default/xui/ja/floater_about_land.xml | 6 +- .../skins/default/xui/ja/floater_buy_land.xml | 61 ++-- .../skins/default/xui/ja/floater_land_holdings.xml | 21 +- .../skins/default/xui/ja/floater_sell_land.xml | 32 +- .../skins/default/xui/ja/floater_top_objects.xml | 60 ++-- .../skins/default/xui/ja/panel_group_general.xml | 75 ++-- .../default/xui/ja/panel_group_land_money.xml | 53 +-- .../skins/default/xui/ja/panel_group_notices.xml | 51 ++- .../skins/default/xui/ja/panel_group_roles.xml | 91 +++-- .../default/xui/ja/panel_preferences_general.xml | 28 +- .../skins/default/xui/pl/floater_about_land.xml | 6 +- .../skins/default/xui/pl/floater_beacons.xml | 2 +- .../skins/default/xui/pl/floater_buy_contents.xml | 2 +- .../skins/default/xui/pl/floater_buy_object.xml | 4 +- .../skins/default/xui/pl/floater_critical.xml | 2 +- .../skins/default/xui/pl/floater_customize.xml | 26 +- .../skins/default/xui/pl/floater_inventory.xml | 6 +- .../xui/pl/floater_inventory_item_properties.xml | 2 +- .../skins/default/xui/pl/floater_joystick.xml | 216 +++++------ .../skins/default/xui/pl/floater_lagmeter.xml | 34 +- .../skins/default/xui/pl/floater_land_holdings.xml | 2 +- .../skins/default/xui/pl/floater_openobject.xml | 2 +- .../skins/default/xui/pl/floater_report_abuse.xml | 64 ++-- .../skins/default/xui/pl/floater_snapshot.xml | 2 +- .../newview/skins/default/xui/pl/floater_tools.xml | 4 +- .../skins/default/xui/pl/menu_inventory.xml | 2 +- indra/newview/skins/default/xui/pl/menu_viewer.xml | 396 ++++++++++----------- .../skins/default/xui/pl/panel_group_notices.xml | 6 +- .../skins/default/xui/pl/panel_group_roles.xml | 6 +- .../newview/skins/default/xui/pl/panel_groups.xml | 2 +- indra/newview/skins/default/xui/pl/panel_login.xml | 36 +- .../default/xui/pl/panel_preferences_chat.xml | 76 ++-- .../newview/skins/default/xui/pl/role_actions.xml | 2 +- indra/newview/skins/default/xui/pl/strings.xml | 2 +- .../skins/default/xui/pl/teleport_strings.xml | 4 +- .../skins/default/xui/pt/floater_about_land.xml | 8 +- .../default/xui/pt/floater_day_cycle_options.xml | 2 +- indra/newview/skins/default/xui/pt/floater_im.xml | 2 +- .../skins/default/xui/pt/floater_lagmeter.xml | 2 +- .../skins/default/xui/pt/floater_media_browser.xml | 4 +- .../skins/default/xui/pt/floater_snapshot.xml | 4 +- .../default/xui/pt/floater_windlight_options.xml | 4 +- indra/newview/skins/default/xui/pt/menu_viewer.xml | 6 +- indra/newview/skins/default/xui/pt/mime_types.xml | 10 +- .../newview/skins/default/xui/pt/panel_friends.xml | 2 +- .../skins/default/xui/pt/panel_group_general.xml | 6 +- .../skins/default/xui/pt/panel_region_debug.xml | 2 +- .../skins/default/xui/pt/panel_region_estate.xml | 2 +- indra/newview/skins/default/xui/pt/strings.xml | 4 +- .../skins/default/xui/pt/teleport_strings.xml | 2 +- 58 files changed, 750 insertions(+), 765 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index fd473b66d5..9a8d211cf6 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2308,6 +2308,7 @@ void LLAppViewer::handleViewerCrash() gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath(); gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds()); gDebugInfo["StartupState"] = LLStartUp::getStartupStateString(); + gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) getCurrentRSS() >> 10; if(gLogoutInProgress) { @@ -3259,6 +3260,8 @@ void LLAppViewer::idle() return; } + gViewerWindow->handlePerFrameHover(); + /////////////////////////////////////// // Agent and camera movement // diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 3f4e1353df..9099ddc896 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -254,8 +254,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) gViewerWindow->performPick(); } - gViewerWindow->handlePerFrameHover(); - LLAppViewer::instance()->pingMainloopTimeout("Display:CheckStates"); LLGLState::checkStates(); LLGLState::checkTextureChannels(); diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp index 1d4f1a64f5..59bc9dc62b 100644 --- a/indra/newview/llwindebug.cpp +++ b/indra/newview/llwindebug.cpp @@ -122,6 +122,14 @@ MODULE32_NEST Module32Next_; #define CALL_TRACE_MAX ((DUMP_SIZE_MAX - 2000) / (MAX_PATH + 40)) //max number of traced calls #define NL L"\r\n" //new line + +typedef struct STACK +{ + STACK * Ebp; + PBYTE Ret_Addr; + DWORD Param[0]; +} STACK, * PSTACK; + BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & Module_Addr); void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, const CONTEXT* context_record, @@ -338,6 +346,31 @@ PBYTE get_valid_frame(PBYTE esp) return NULL; } + +bool shouldUseStackWalker(PSTACK Ebp, int max_depth) +{ + WCHAR Module_Name[MAX_PATH]; + PBYTE Module_Addr = 0; + int depth = 0; + + while (depth < max_depth) + { + if (IsBadReadPtr(Ebp, sizeof(PSTACK)) || + IsBadReadPtr(Ebp->Ebp, sizeof(PSTACK)) || + Ebp->Ebp < Ebp || + Ebp->Ebp - Ebp > 0xFFFFFF || + IsBadCodePtr(FARPROC(Ebp->Ebp->Ret_Addr)) || + !Get_Module_By_Ret_Addr(Ebp->Ebp->Ret_Addr, Module_Name, Module_Addr)) + { + return true; + } + depth++; + Ebp = Ebp->Ebp; + } + + return false; +} + //****************************************************************** void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, const CONTEXT* context_record, @@ -355,17 +388,10 @@ void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, bool fake_frame = false; bool ebp_used = false; - const int HEURISTIC_MAX_WALK = 10; + const int HEURISTIC_MAX_WALK = 20; int heuristic_walk_i = 0; int Ret_Addr_I = 0; - typedef struct STACK - { - STACK * Ebp; - PBYTE Ret_Addr; - DWORD Param[0]; - } STACK, * PSTACK; - STACK Stack = {0, 0}; PSTACK Ebp; @@ -434,10 +460,9 @@ void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, // is next ebp valid? // only run if we've never found a good ebp + // and make sure the one after is valid as well if( !ebp_used && - (IsBadReadPtr(Ebp->Ebp, sizeof(PSTACK)) || - IsBadCodePtr(FARPROC(Ebp->Ebp->Ret_Addr)) || - !Get_Module_By_Ret_Addr(Ebp->Ebp->Ret_Addr, Module_Name, Module_Addr))) + shouldUseStackWalker(Ebp, 2)) { heuristic_walk_i++; PBYTE new_ebp = get_valid_frame(Esp); @@ -452,9 +477,9 @@ void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, Ebp = Ebp->Ebp; } } - +/* TODO remove or turn this code back on to edit the stack after i see a few raw ones. -Palmer // Now go back through and edit out heuristic stacks that could very well be bogus. - // Leave the top and the last stack chosen by the heuristic, however. + // Leave the top and the last 3 stack chosen by the heuristic, however. if(heuristic_walk_i > 2) { info["CallStack"][0] = tmp_info["CallStack"][0]; @@ -471,7 +496,10 @@ void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, { info = tmp_info; } - +*/ + info = tmp_info; + info["HeuristicWalkI"] = heuristic_walk_i; + info["EbpUsed"] = ebp_used; } //Get_Call_Stack diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index 1b7722fffd..82df6518cd 100644 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -26,7 +26,7 @@ Alle Rechte vorbehalten. Details siehe licenses.txt. Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C) -Wir können nur eine kurze Distanz in die Zukunft blicken, aber dort können wir eine Menge sehen, was getan werden muss. --Alan Turing +I get by with a little help from my friends. (etwa: Ich überlebe mit ein bisschen Unterstützung von meinen Freunden.) --Richard Starkey Sie befinden sich in [POSITION] diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml index 247051f598..eee6c5c154 100644 --- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml @@ -1,7 +1,7 @@ - Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Solange der Wert für „Insgesamt verwendetes Land“ unter oder gleich dem Wert für „Gesamtbeitrag“ ist, wird eine Warnung angezeigt. Die Registerkarten „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen. + Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Ein Warnhinweis wird angezeigt, solange der Wert für das Insgesamt verwendete Land gleich oder weniger ist als der Gesamtbeitrag. Die Reiter „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.