diff --git a/autobuild.xml b/autobuild.xml index 81dfb337c8..485d7e5b52 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1731,11 +1731,11 @@ archive hash - 468e88a527e610804c3eecf07f4ed70b + 01a7cc9d0e56238a9abedd7a41ccd0a3 hash_algorithm md5 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/Darwin/installer/llphysicsextensions_source-1.0.298369-darwin-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/Darwin/installer/llphysicsextensions_source-1.0.313564-darwin-313564.tar.bz2 name darwin @@ -1745,9 +1745,9 @@ archive hash - 793964e49c935b414c4bdbb8a0d14ad1 + c94dc7ab6efe59c0d5d04fc447257c57 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/Linux/installer/llphysicsextensions_source-1.0.298369-linux-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/Linux/installer/llphysicsextensions_source-1.0.313564-linux-313564.tar.bz2 name linux @@ -1757,16 +1757,16 @@ archive hash - 922aad5261aac150e5ce3c094e57f373 + 4a9dbeb437d0e1546b93d16073ff1442 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/CYGWIN/installer/llphysicsextensions_source-1.0.298369-windows-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/CYGWIN/installer/llphysicsextensions_source-1.0.313564-windows-313564.tar.bz2 name windows version - 1.0.298369 + 1.0.313564 llphysicsextensions_stub diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp index e277a73925..a295e6ac49 100644 --- a/indra/llcrashlogger/llcrashlogger.cpp +++ b/indra/llcrashlogger/llcrashlogger.cpp @@ -40,7 +40,6 @@ #include "lldir.h" #include "llfile.h" #include "llsdserialize.h" -#include "llsdserialize.h" #include "llproxy.h" #include "llcorehttputil.h" #include "llhttpsdhandler.h" @@ -49,6 +48,7 @@ #include #include +#include // [SL:KB] - Patch: Viewer-CrashLookup | Checked: 2011-03-24 (Catznip-2.6.0a) | Added: Catznip-2.6.0a @@ -84,12 +84,15 @@ protected: void LLCrashLoggerHandler::onSuccess(LLCore::HttpResponse * response, const LLSD &content) { + LL_DEBUGS("CRASHREPORT") << "Request to " << response->getRequestURL() << "succeeded" << LL_ENDL; gBreak = true; gSent = true; } void LLCrashLoggerHandler::onFailure(LLCore::HttpResponse * response, LLCore::HttpStatus status) { + LL_WARNS("CRASHREPORT") << "Request to " << response->getRequestURL() + << " failed: " << status.toString() << LL_ENDL; gBreak = true; } @@ -164,27 +167,25 @@ std::string getStartupStateFromLog(std::string& sllog) return startup_state; } -bool LLCrashLogger::readDebugFromXML(LLSD& dest, const std::string& filename ) +bool LLCrashLogger::readFromXML(LLSD& dest, const std::string& filename ) { std::string db_file_name = gDirUtilp->getExpandedFilename(LL_PATH_DUMP,filename); - // Properly handle unicode path on Windows. Maybe could use a llifstream instead of ifdef? - - // std::ifstream debug_log_file(db_file_name.c_str()); + // std::ifstream log_file(db_file_name.c_str()); #ifdef LL_WINDOWS - std::ifstream debug_log_file( utf8str_to_utf16str( db_file_name ).c_str()); + std::ifstream log_file( utf8str_to_utf16str( db_file_name ).c_str()); #else - std::ifstream debug_log_file(db_file_name.c_str()); + std::ifstream log_file(db_file_name.c_str()); #endif // - // Look for it in the debug_info.log file - if (debug_log_file.is_open()) + // Look for it in the given file + if (log_file.is_open()) { - LLSDSerialize::fromXML(dest, debug_log_file); - debug_log_file.close(); + LLSDSerialize::fromXML(dest, log_file); + log_file.close(); return true; } return false; @@ -228,9 +229,16 @@ void LLCrashLogger::gatherFiles() LLSD static_sd; LLSD dynamic_sd; + //if we ever want to change the endpoint we send crashes to + //we can construct a file download ( a la feature table filename for example) + //containing the new endpoint + LLSD endpoint; + std::string grid; + std::string fqdn; - bool has_logs = readDebugFromXML( static_sd, "static_debug_info.log" ); - has_logs |= readDebugFromXML( dynamic_sd, "dynamic_debug_info.log" ); + bool has_logs = readFromXML( static_sd, "static_debug_info.log" ); + has_logs |= readFromXML( dynamic_sd, "dynamic_debug_info.log" ); + if ( has_logs ) { @@ -240,6 +248,7 @@ void LLCrashLogger::gatherFiles() mFileMap["SecondLifeLog"] = mDebugLog["SLLog"].asString(); mFileMap["SettingsXml"] = mDebugLog["SettingsFilename"].asString(); + mFileMap["CrashHostUrl"] = loadCrashURLSetting(); if(mDebugLog.has("CAFilename")) { LLCore::HttpRequest::setStaticPolicyOption(LLCore::HttpRequest::PO_CA_FILE, @@ -251,8 +260,8 @@ void LLCrashLogger::gatherFiles() LLCore::HttpRequest::GLOBAL_POLICY_ID, gDirUtilp->getCAFile(), NULL); } - LL_INFOS() << "Using log file from debug log " << mFileMap["SecondLifeLog"] << LL_ENDL; - LL_INFOS() << "Using settings file from debug log " << mFileMap["SettingsXml"] << LL_ENDL; + LL_INFOS("CRASHREPORT") << "Using log file from debug log " << mFileMap["SecondLifeLog"] << LL_ENDL; + LL_INFOS("CRASHREPORT") << "Using settings file from debug log " << mFileMap["SettingsXml"] << LL_ENDL; } // else // { @@ -274,36 +283,16 @@ void LLCrashLogger::gatherFiles() mFileMap.erase( "SecondLifeLog" ); // Don't send any Firestorm.log. It's likely huge and won't help for crashdump processing. mDebugLog.erase( "SLLog" ); // Remove SLLog, as it's a path that contains the OS user name. - //Use the debug log to reconstruct the URL to send the crash report to - if(mDebugLog.has("CrashHostUrl")) - { - // Crash log receiver has been manually configured. - mCrashHost = mDebugLog["CrashHostUrl"].asString(); - } + if ( has_logs && (mFileMap["CrashHostUrl"] != "") ) + { + mCrashHost = mFileMap["CrashHostUrl"]; + } // Might hardcode mCrashHost to crashlogs.phoenixviewer.com if unset // Do not send out crash reports to Linden Labs. They won't have much use for them without symbols. - - // else if(mDebugLog.has("CurrentSimHost")) - // { - // mCrashHost = "https://"; - // mCrashHost += mDebugLog["CurrentSimHost"].asString(); - // mCrashHost += ":12043/crash/report"; - // } - // else if(mDebugLog.has("GridName")) - // { - // // This is a 'little' hacky, but its the best simple solution. - // std::string grid_host = mDebugLog["GridName"].asString(); - // LLStringUtil::toLower(grid_host); - - // mCrashHost = "https://login."; - // mCrashHost += grid_host; - // mCrashHost += ".lindenlab.com:12043/crash/report"; - // } - - // Use login servers as the alternate, since they are already load balanced and have a known name - // mAltCrashHost = "https://login.agni.lindenlab.com:12043/crash/report"; + //default to agni, per product + //mAltCrashHost = "http://viewercrashreport.agni.lindenlab.com/cgi-bin/viewercrashreceiver.py"; // @@ -313,30 +302,31 @@ void LLCrashLogger::gatherFiles() updateApplication("Encoding files..."); // We're not using this. We do not send a LLSD xml with all data embedded. + //for(std::map::iterator itr = mFileMap.begin(); itr != mFileMap.end(); ++itr) + //{ + // std::ifstream f((*itr).second.c_str()); + // if(f.is_open()) + //{ + // std::stringstream s; + // s << f.rdbuf(); - // for(std::map::iterator itr = mFileMap.begin(); itr != mFileMap.end(); ++itr) - // { - // std::ifstream f((*itr).second.c_str()); - // if(!f.is_open()) - // { - // LL_INFOS("CRASHREPORT") << "Can't find file " << (*itr).second << LL_ENDL; - // continue; - // } - // std::stringstream s; - // s << f.rdbuf(); + // std::string crash_info = s.str(); + // if(itr->first == "SecondLifeLog") + // { + // if(!mCrashInfo["DebugLog"].has("StartupState")) + // { + // mCrashInfo["DebugLog"]["StartupState"] = getStartupStateFromLog(crash_info); + // } + // trimSLLog(crash_info); + // } - // std::string crash_info = s.str(); - // if(itr->first == "SecondLifeLog") - // { - // if(!mCrashInfo["DebugLog"].has("StartupState")) - // { - // mCrashInfo["DebugLog"]["StartupState"] = getStartupStateFromLog(crash_info); - // } - // trimSLLog(crash_info); - // } - - // mCrashInfo[(*itr).first] = LLStringFn::strip_invalid_xml(rawstr_to_utf8(crash_info)); - // } + // mCrashInfo[(*itr).first] = LLStringFn::strip_invalid_xml(rawstr_to_utf8(crash_info)); + //} + //else + //{ + // LL_WARNS("CRASHREPORT") << "Can't find file " << (*itr).second << LL_ENDL; + //} + //} // @@ -417,8 +407,9 @@ LLSD LLCrashLogger::constructPostData() const char* const CRASH_SETTINGS_FILE = "settings_crash_behavior.xml"; -S32 LLCrashLogger::loadCrashBehaviorSetting() +std::string LLCrashLogger::loadCrashURLSetting() { + // First check user_settings (in the user's home dir) std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE); if (! mCrashSettings.loadFromFile(filename)) @@ -428,38 +419,14 @@ S32 LLCrashLogger::loadCrashBehaviorSetting() mCrashSettings.loadFromFile(filename); } - // If we didn't load any files above, this will return the default - S32 value = mCrashSettings.getS32("CrashSubmitBehavior"); - - // Whatever value we got, make sure it's valid - switch (value) - { - case CRASH_BEHAVIOR_NEVER_SEND: - return CRASH_BEHAVIOR_NEVER_SEND; - case CRASH_BEHAVIOR_ALWAYS_SEND: - return CRASH_BEHAVIOR_ALWAYS_SEND; - } - - return CRASH_BEHAVIOR_ASK; -} - -bool LLCrashLogger::saveCrashBehaviorSetting(S32 crash_behavior) -{ - switch (crash_behavior) - { - case CRASH_BEHAVIOR_ASK: - case CRASH_BEHAVIOR_NEVER_SEND: - case CRASH_BEHAVIOR_ALWAYS_SEND: - break; - default: - return false; - } - - mCrashSettings.setS32("CrashSubmitBehavior", crash_behavior); - std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE); - mCrashSettings.saveToFile(filename, FALSE); - - return true; + if (! mCrashSettings.controlExists("CrashHostUrl")) + { + return ""; + } + else + { + return mCrashSettings.getString("CrashHostUrl"); + } } // [SL:KB] - Patch: Viewer-CrashReporting | Checked: 2011-03-24 (Catznip-2.6.0a) | Added: Catznip-2.6.0a @@ -480,13 +447,13 @@ bool LLCrashLogger::runCrashLogPost(std::string host, LLSD data, std::string msg LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); - gBreak = false; httpOpts->setTimeout(timeout); for(int i = 0; i < retries; ++i) { updateApplication(llformat("%s, try %d...", msg.c_str(), i+1)); + LL_INFOS("CRASHREPORT") << "POST crash data to " << host << LL_ENDL; LLCore::HttpHandle handle = LLCoreHttpUtil::requestPostWithLLSD(httpRequest.get(), LLCore::HttpRequest::DEFAULT_POLICY_ID, 0, host, data, httpOpts, LLCore::HttpHeaders::ptr_t(), LLCore::HttpHandler::ptr_t(new LLCrashLoggerHandler)); @@ -499,10 +466,11 @@ bool LLCrashLogger::runCrashLogPost(std::string host, LLSD data, std::string msg } while(!gBreak) - { - updateApplication(); // No new message, just pump the IO + { + ms_sleep(250); + updateApplication(); // No new message, just pump the IO httpRequest->update(0L); - } + } if(gSent) { return gSent; @@ -515,13 +483,16 @@ bool LLCrashLogger::runCrashLogPost(std::string host, LLSD data, std::string msg bool LLCrashLogger::sendCrashLog(std::string dump_dir) { + gDirUtilp->setDumpDir( dump_dir ); // std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, // "SecondLifeCrashReport"); std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "FirestormCrashReport"); std::string report_file = dump_path + ".log"; - + + LL_DEBUGS("CRASHREPORT") << "sending " << report_file << LL_ENDL; + gatherFiles(); LLSD post_data; @@ -536,13 +507,19 @@ bool LLCrashLogger::sendCrashLog(std::string dump_dir) #endif LLSDSerialize::toPrettyXML(post_data, out_file); + out_file.flush(); out_file.close(); bool sent = false; - //*TODO: Translate - if(mCrashHost != "") + if(mCrashHost != "") { + LL_WARNS("CRASHREPORT") << "Sending crash data to server from CrashHostUrl '" << mCrashHost << "'" << LL_ENDL; + + std::string msg = "Using override crash server... "; + msg = msg+mCrashHost.c_str(); + updateApplication(msg.c_str()); + sent = runCrashLogPost(mCrashHost, post_data, std::string("Sending to server"), 3, 5); } @@ -550,6 +527,7 @@ bool LLCrashLogger::sendCrashLog(std::string dump_dir) // if(!sent) // { + //updateApplication("Using default server..."); // sent = runCrashLogPost(mAltCrashHost, post_data, std::string("Sending to alternate server"), 3, 5); // } @@ -563,83 +541,32 @@ bool LLCrashLogger::sendCrashLog(std::string dump_dir) bool LLCrashLogger::sendCrashLogs() { - //pertinent code from below moved into a subroutine. - LLSD locks = mKeyMaster.getProcessList(); - LLSD newlocks = LLSD::emptyArray(); - LLSD opts = getOptionData(PRIORITY_COMMAND_LINE); LLSD rec; - if ( opts.has("pid") && opts.has("dumpdir") && opts.has("procname") ) + if ( opts.has("dumpdir") ) { rec["pid"]=opts["pid"]; rec["dumpdir"]=opts["dumpdir"]; rec["procname"]=opts["procname"]; } - - // Try to send the current crash right away, if that fails queue it for next time. - if( rec && rec.has("dumpdir") ) - if( !sendCrashLog( rec["dumpdir"].asString() ) ) - newlocks.append(rec); - // - - if (locks.isArray()) + else { - for (LLSD::array_iterator lock=locks.beginArray(); - lock !=locks.endArray(); - ++lock) - { - if ( (*lock).has("pid") && (*lock).has("dumpdir") && (*lock).has("procname") ) - { - if ( mKeyMaster.isProcessAlive( (*lock)["pid"].asInteger(), (*lock)["procname"].asString() ) ) - { - newlocks.append(*lock); - } - else - { - //TODO: This is a hack but I didn't want to include boost in another file or retest everything related to lldir - if (LLCrashLock::fileExists((*lock)["dumpdir"].asString())) - { - //the viewer cleans up the log directory on clean shutdown - //but is ignorant of the locking table. - if (!sendCrashLog((*lock)["dumpdir"].asString())) - { - newlocks.append(*lock); //Failed to send log so don't delete it. - } - else - { - //mCrashInfo["DebugLog"].erase("MinidumpPath"); + return false; + } - mKeyMaster.cleanupProcess((*lock)["dumpdir"].asString()); - } - } - } - } - else - { - LL_WARNS() << "Discarding corrupted entry from lock table." << LL_ENDL; - } - } - } - - // We want this appended right away, or this crash only gets send the next time the crashreporter runs. - // if (rec) - // { - // newlocks.append(rec); - // } - // - - mKeyMaster.putProcessList(newlocks); - return true; + return sendCrashLog(rec["dumpdir"].asString()); } void LLCrashLogger::updateApplication(const std::string& message) { - if (!message.empty()) LL_INFOS() << message << LL_ENDL; + if (!message.empty()) LL_INFOS("CRASHREPORT") << message << LL_ENDL; } bool LLCrashLogger::init() { + LL_DEBUGS("CRASHREPORT") << LL_ENDL; + LLCore::LLHttp::initialize(); // We assume that all the logs we're looking for reside on the current drive @@ -671,25 +598,7 @@ bool LLCrashLogger::init() // Set the log file to crashreport.log LLError::logToFile(log_file); //NOTE: Until this line, LL_INFOS LL_WARNS, etc are blown to the ether. - // Handle locking - bool locked = mKeyMaster.requestMaster(); //Request master locking file. wait time is defaulted to 300S - - while (!locked && mKeyMaster.isWaiting()) - { - LL_INFOS("CRASHREPORT") << "Waiting for lock." << LL_ENDL; -#if LL_WINDOWS - Sleep(1000); -#else - sleep(1); -#endif - locked = mKeyMaster.checkMaster(); - } - - if (!locked) - { - LL_WARNS("CRASHREPORT") << "Unable to get master lock. Another crash reporter may be hung." << LL_ENDL; - return false; - } + LL_INFOS("CRASHREPORT") << "Crash reporter file rotation complete." << LL_ENDL; mCrashSettings.declareS32("CrashSubmitBehavior", CRASH_BEHAVIOR_ALWAYS_SEND, "Controls behavior when viewer crashes " @@ -697,16 +606,6 @@ bool LLCrashLogger::init() "1 = always send crash report, " "2 = never send crash report)"); - // LL_INFOS() << "Loading crash behavior setting" << LL_ENDL; - // mCrashBehavior = loadCrashBehaviorSetting(); - - // If user doesn't want to send, bail out - if (mCrashBehavior == CRASH_BEHAVIOR_NEVER_SEND) - { - LL_INFOS() << "Crash behavior is never_send, quitting" << LL_ENDL; - return false; - } - init_curl(); LLCore::HttpRequest::createService(); LLCore::HttpRequest::startThread(); diff --git a/indra/llcrashlogger/llcrashlogger.h b/indra/llcrashlogger/llcrashlogger.h index 1e5244307f..57dedb7232 100644 --- a/indra/llcrashlogger/llcrashlogger.h +++ b/indra/llcrashlogger/llcrashlogger.h @@ -49,13 +49,12 @@ class LLCrashLogger : public LLApp public: LLCrashLogger(); virtual ~LLCrashLogger(); - S32 loadCrashBehaviorSetting(); - bool readDebugFromXML(LLSD& dest, const std::string& filename ); + std::string loadCrashURLSetting(); + bool readFromXML(LLSD& dest, const std::string& filename ); void gatherFiles(); void mergeLogs( LLSD src_sd ); virtual void gatherPlatformSpecificFiles() {} - bool saveCrashBehaviorSetting(S32 crash_behavior); bool sendCrashLog(std::string dump_dir); bool sendCrashLogs(); LLSD constructPostData(); diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp index 351009814d..3149fad6e8 100644 --- a/indra/mac_crash_logger/llcrashloggermac.cpp +++ b/indra/mac_crash_logger/llcrashloggermac.cpp @@ -66,22 +66,19 @@ void LLCrashLoggerMac::gatherPlatformSpecificFiles() bool LLCrashLoggerMac::mainLoop() { + if (mCrashBehavior == CRASH_BEHAVIOR_ALWAYS_SEND) { gSendReport = true; } - if(gRememberChoice) - { - if(gSendReport) saveCrashBehaviorSetting(CRASH_BEHAVIOR_ALWAYS_SEND); - else saveCrashBehaviorSetting(CRASH_BEHAVIOR_NEVER_SEND); - } - if(gSendReport) { setUserText(gUserNotes); sendCrashLogs(); } + + LL_INFOS() << "Sending of logs complete" << LL_ENDL; return true; } diff --git a/indra/mac_crash_logger/mac_crash_logger.cpp b/indra/mac_crash_logger/mac_crash_logger.cpp index b65a80331e..95d4e65207 100644 --- a/indra/mac_crash_logger/mac_crash_logger.cpp +++ b/indra/mac_crash_logger/mac_crash_logger.cpp @@ -39,16 +39,12 @@ int main(int argc, char **argv) LLSD options = LLApp::instance()->getOptionData( LLApp::PRIORITY_COMMAND_LINE); - if (!(options.has("pid") && options.has("dumpdir"))) - { - LL_WARNS() << "Insufficient parameters to crash report." << LL_ENDL; - } - if (! app.init()) { LL_WARNS() << "Unable to initialize application." << LL_ENDL; return 1; } + if (app.getCrashBehavior() != CRASH_BEHAVIOR_ALWAYS_SEND) { // return NSApplicationMain(argc, (const char **)argv); diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp index 358b5a097a..8b4078488a 100644 --- a/indra/newview/llappviewermacosx.cpp +++ b/indra/newview/llappviewermacosx.cpp @@ -83,10 +83,6 @@ static void exceptionTerminateHandler() bool initViewer() { -#if LL_SOLARIS && defined(__sparc) - asm ("ta\t6"); // NOTE: Make sure memory alignment is enforced on SPARC -#endif - // Set the working dir to /Contents/Resources if (chdir(gDirUtilp->getAppRODataDir().c_str()) == -1) { @@ -301,6 +297,7 @@ void LLAppViewerMacOSX::initCrashReporting(bool reportFreeze) std::string appname = gDirUtilp->getExecutableFilename(); std::string str[] = { "-pid", pid_str.str(), "-dumpdir", logdir, "-procname", appname.c_str() }; std::vector< std::string > args( str, str + ( sizeof ( str ) / sizeof ( std::string ) ) ); + LL_WARNS() << "about to launch mac-crash-logger" << pid_str << " " << logdir << " " << appname << LL_ENDL; launchApplication(&command_str, &args); } diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index 2be3e8546f..5431daca32 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -103,89 +103,68 @@ void LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro(std::string url, U64 if (result.has(KEY_AGENTS)) { - const LLSD & avatar_render_info = result[KEY_AGENTS]; - if (avatar_render_info.isMap()) + const LLSD & agents = result[KEY_AGENTS]; + if (agents.isMap()) { - if ( avatar_render_info.has(KEY_REPORTING_COMPLEXITY_LIMIT) - && avatar_render_info.has(KEY_OVER_COMPLEXITY_LIMIT)) + for (LLSD::map_const_iterator agent_iter = agents.beginMap(); + agent_iter != agents.endMap(); + agent_iter++ + ) { - U32 reporting = avatar_render_info[KEY_REPORTING_COMPLEXITY_LIMIT].asInteger(); - U32 overlimit = avatar_render_info[KEY_OVER_COMPLEXITY_LIMIT].asInteger(); - - LL_DEBUGS("AvatarRenderInfo") << "complexity limit: "<updateNotificationRegion(reporting, overlimit); - } - - if (avatar_render_info.has(KEY_AGENTS)) - { - const LLSD & agents = avatar_render_info[KEY_AGENTS]; - if (agents.isMap()) + LLUUID target_agent_id = LLUUID(agent_iter->first); + LLViewerObject* avatarp = gObjectList.findObject(target_agent_id); + if (avatarp && avatarp->isAvatar()) { - for (LLSD::map_const_iterator agent_iter = agents.beginMap(); - agent_iter != agents.endMap(); - agent_iter++ - ) + const LLSD & agent_info_map = agent_iter->second; + if (agent_info_map.isMap()) { - LLUUID target_agent_id = LLUUID(agent_iter->first); - LLViewerObject* avatarp = gObjectList.findObject(target_agent_id); - if (avatarp && avatarp->isAvatar()) - { - const LLSD & agent_info_map = agent_iter->second; - if (agent_info_map.isMap()) - { - LL_DEBUGS("AvatarRenderInfo") << " Agent " << target_agent_id - << ": " << agent_info_map << LL_ENDL; + LL_DEBUGS("AvatarRenderInfo") << " Agent " << target_agent_id + << ": " << agent_info_map << LL_ENDL; - if (agent_info_map.has(KEY_WEIGHT)) - { - ((LLVOAvatar *) avatarp)->setReportedVisualComplexity(agent_info_map[KEY_WEIGHT].asInteger()); - } - } - else - { - LL_WARNS("AvatarRenderInfo") << "agent entry invalid" - << " agent " << target_agent_id - << " map " << agent_info_map - << LL_ENDL; - } - } - else + if (agent_info_map.has(KEY_WEIGHT)) { - LL_DEBUGS("AvatarRenderInfo") << "Unknown agent " << target_agent_id << LL_ENDL; + ((LLVOAvatar *) avatarp)->setReportedVisualComplexity(agent_info_map[KEY_WEIGHT].asInteger()); } - } // for agent_iter + } + else + { + LL_WARNS("AvatarRenderInfo") << "agent entry invalid" + << " agent " << target_agent_id + << " map " << agent_info_map + << LL_ENDL; + } } else { - LL_WARNS("AvatarRenderInfo") << "malformed get response agents avatar_render_info is not map" << LL_ENDL; + LL_DEBUGS("AvatarRenderInfo") << "Unknown agent " << target_agent_id << LL_ENDL; } - } // has "agents" - else if (avatar_render_info.has(KEY_ERROR)) - { - const LLSD & error = avatar_render_info[KEY_ERROR]; - LL_WARNS("AvatarRenderInfo") << "Avatar render info GET error: " - << error[KEY_IDENTIFIER] - << ": " << error[KEY_MESSAGE] - << LL_ENDL; - } - else - { - LL_WARNS("AvatarRenderInfo") << "no agent key in get response" << LL_ENDL; - } + } // for agent_iter } else { - LL_WARNS("AvatarRenderInfo") << "malformed get response is not map" << LL_ENDL; + LL_WARNS("AvatarRenderInfo") << "malformed get response '" << KEY_AGENTS << "' is not map" << LL_ENDL; } } // has "agents" - else if (result.has(KEY_ERROR)) + else { - const LLSD & error = result[KEY_ERROR]; - LL_WARNS() << "Avatar render info GET error: " - << error[KEY_IDENTIFIER] - << ": " << error[KEY_MESSAGE] - << " from region " << regionp->getName() + LL_INFOS("AvatarRenderInfo") << "no '"<< KEY_AGENTS << "' key in get response" << LL_ENDL; + } + + if ( result.has(KEY_REPORTING_COMPLEXITY_LIMIT) + && result.has(KEY_OVER_COMPLEXITY_LIMIT)) + { + U32 reporting = result[KEY_REPORTING_COMPLEXITY_LIMIT].asInteger(); + U32 overlimit = result[KEY_OVER_COMPLEXITY_LIMIT].asInteger(); + + LL_DEBUGS("AvatarRenderInfo") << "complexity limit: "<updateNotificationRegion(reporting, overlimit); + } + else + { + LL_WARNS("AvatarRenderInfo") + << "response is missing either '" << KEY_REPORTING_COMPLEXITY_LIMIT + << "' or '" << KEY_OVER_COMPLEXITY_LIMIT << "'" << LL_ENDL; } diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h index c9dc997978..2d580328dd 100644 --- a/indra/newview/llcompilequeue.h +++ b/indra/newview/llcompilequeue.h @@ -141,10 +141,6 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue { friend class LLFloaterReg; public: - static void onSaveBytecodeComplete(const LLUUID& asset_id, - void* user_data, - S32 status); - // remove any object in mScriptScripts with the matching uuid. void removeItemByItemID(const LLUUID& item_id); diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index c1aa087d2c..31bac1616f 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -2218,101 +2218,6 @@ void LLPreviewLSL::saveIfNeeded(bool sync /*= true*/) } } - -// static -void LLPreviewLSL::onSaveComplete(const LLUUID& iuuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed) -{ - // NaCl - LSL Preprocessor - LLUUID asset_uuid = iuuid; - // NaCl End - LLScriptSaveInfo* info = reinterpret_cast(user_data); - if(0 == status) - { - if (info) - { - const LLViewerInventoryItem* item; - item = (const LLViewerInventoryItem*)gInventory.getItem(info->mItemUUID); - if(item) - { - LLPointer new_item = new LLViewerInventoryItem(item); - // NaCl - LSL Preprocessor - if(asset_uuid.isNull()) - asset_uuid.generate(); - // NaCl End - new_item->setAssetUUID(asset_uuid); - new_item->setTransactionID(info->mTransactionID); - new_item->updateServer(FALSE); - gInventory.updateItem(new_item); - gInventory.notifyObservers(); - } - else - { - LL_WARNS() << "Inventory item for script " << info->mItemUUID - << " is no longer in agent inventory." << LL_ENDL; - } - - // Find our window and close it if requested. - LLPreviewLSL* self = LLFloaterReg::findTypedInstance("preview_script", info->mItemUUID); - if (self) - { - getWindow()->decBusyCount(); - self->mPendingUploads--; - if (self->mPendingUploads <= 0 - && self->mCloseAfterSave) - { - self->closeFloater(); - } - } - } - } - else - { - LL_WARNS() << "Problem saving script: " << status << LL_ENDL; - LLSD args; - args["REASON"] = std::string(LLAssetStorage::getErrorString(status)); - LLNotificationsUtil::add("SaveScriptFailReason", args); - } - delete info; -} - -// static -void LLPreviewLSL::onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed) -{ - LLUUID* instance_uuid = (LLUUID*)user_data; - LLPreviewLSL* self = NULL; - if(instance_uuid) - { - self = LLFloaterReg::findTypedInstance("preview_script", *instance_uuid); - } - if (0 == status) - { - if (self) - { - LLSD row; - row["columns"][0]["value"] = "Compile successful!"; - row["columns"][0]["font"] = "SANSSERIF_SMALL"; - self->mScriptEd->mErrorList->addElement(row); - - // Find our window and close it if requested. - self->getWindow()->decBusyCount(); - self->mPendingUploads--; - if (self->mPendingUploads <= 0 - && self->mCloseAfterSave) - { - self->closeFloater(); - } - } - } - else - { - LL_WARNS() << "Problem saving LSL Bytecode (Preview)" << LL_ENDL; - LLSD args; - args["REASON"] = std::string(LLAssetStorage::getErrorString(status)); - LLNotificationsUtil::add("SaveBytecodeFailReason", args); - } - delete instance_uuid; -} - // static void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAssetType::EType type, void* user_data, S32 status, LLExtStat ext_status) @@ -2923,96 +2828,6 @@ void LLLiveLSLEditor::saveIfNeeded(bool sync /*= true*/) } } - -void LLLiveLSLEditor::onSaveTextComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed) -{ -// Remove more legacy stuff -Sei -#if 0 - LLLiveLSLSaveData* data = (LLLiveLSLSaveData*)user_data; - - if (status) - { - LL_WARNS() << "Unable to save text for a script." << LL_ENDL; - LLSD args; - args["REASON"] = std::string(LLAssetStorage::getErrorString(status)); - LLNotificationsUtil::add("CompileQueueSaveText", args); - } - else - { - LLSD floater_key; - floater_key["taskid"] = data->mSaveObjectID; - floater_key["itemid"] = data->mItem->getUUID(); - LLLiveLSLEditor* self = LLFloaterReg::findTypedInstance("preview_scriptedit", floater_key); - if (self) - { - self->getWindow()->decBusyCount(); - self->mPendingUploads--; - if (self->mPendingUploads <= 0 - && self->mCloseAfterSave) - { - self->closeFloater(); - } - } - } - delete data; - data = NULL; -#endif -} - - -void LLLiveLSLEditor::onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed) -{ -// Remove more legacy stuff -Sei -#if 0 - LLLiveLSLSaveData* data = (LLLiveLSLSaveData*)user_data; - if(!data) - return; - if(0 ==status) - { - LL_INFOS() << "LSL Bytecode saved" << LL_ENDL; - LLSD floater_key; - floater_key["taskid"] = data->mSaveObjectID; - floater_key["itemid"] = data->mItem->getUUID(); - LLLiveLSLEditor* self = LLFloaterReg::findTypedInstance("preview_scriptedit", floater_key); - if (self) - { - // Tell the user that the compile worked. - self->mScriptEd->mErrorList->setCommentText(LLTrans::getString("SaveComplete")); - // close the window if this completes both uploads - self->getWindow()->decBusyCount(); - self->mPendingUploads--; - if (self->mPendingUploads <= 0 - && self->mCloseAfterSave) - { - self->closeFloater(); - } - } - LLViewerObject* object = gObjectList.findObject(data->mSaveObjectID); - if(object) - { - object->saveScript(data->mItem, data->mActive, false); - dialog_refresh_all(); - //LLToolDragAndDrop::dropScript(object, ids->first, - // LLAssetType::AT_LSL_TEXT, FALSE); - } - } - else - { - LL_INFOS() << "Problem saving LSL Bytecode (Live Editor)" << LL_ENDL; - LL_WARNS() << "Unable to save a compiled script." << LL_ENDL; - - LLSD args; - args["REASON"] = std::string(LLAssetStorage::getErrorString(status)); - LLNotificationsUtil::add("CompileQueueSaveBytecode", args); - } - - std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_uuid.asString()); - std::string dst_filename = llformat("%s.lso", filepath.c_str()); - LLFile::remove(dst_filename); - delete data; -#endif -} - BOOL LLLiveLSLEditor::canClose() { return (mScriptEd->canClose()); diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index ebf2acf48f..2f82bf2856 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -280,7 +280,6 @@ protected: virtual void loadAsset(); /*virtual*/ void saveIfNeeded(bool sync = true); - static void onSearchReplace(void* userdata); static void onLoad(void* userdata); // FIRE-7514: Script in external editor needs to be saved twice @@ -291,9 +290,7 @@ protected: static void onLoadComplete(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type, void* user_data, S32 status, LLExtStat ext_status); - static void onSaveComplete(const LLUUID& uuid, void* user_data, S32 status, LLExtStat ext_status); - static void onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status); - + protected: static void* createScriptEdPanel(void* userdata); @@ -361,8 +358,6 @@ private: static void onLoadComplete(LLVFS *vfs, const LLUUID& asset_uuid, LLAssetType::EType type, void* user_data, S32 status, LLExtStat ext_status); - static void onSaveTextComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status); - static void onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status); static void onRunningCheckboxClicked(LLUICtrl*, void* userdata); static void onReset(void* userdata); diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index 8aba079563..70af513329 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -85,12 +85,6 @@ Check at Internet forbindelsen fungerer korrekt. Gem ændringer til nuværende tøj/krops del? - - Der var problemer med upload af teksten til et script af følgende årsager: [REASON]. Prøv igen senere. - - - Der var problemer med at uploade den kompileret script af følgende årsager: [REASON]. Prøv igen senere. - Der var et problem med skrivning af animations data. Prøv igen senere. diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index a091b6ff51..18696ef1e0 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -219,12 +219,6 @@ Marktplatzinitialisierung aufgrund eines System- oder Netzwerkfehlers fehlgeschl Wir haben Ihre Auflistung entfernt, da der Versionsordner leer ist. Um diese Auflistung erneut zu listen, müssen Sie Artikel zum Versionsordner hinzufügen. - - Der Text für ein Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut. - - - Eine kompiliertes Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut. - Fehler beim Schreiben von Animationsdaten. Bitte versuchen Sie es erneut. @@ -621,16 +615,10 @@ Möchten Sie die letzte gespeicherte Version vom Server laden? (**Warnung** Dieser Vorgang kann nicht rückgängig gemacht werden.) - - Ein Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später. - Skript konnte nicht gespeichert werden, weil das zugehörige Objekt nicht gefunden wurde. Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht. - - Ein kompiliertes Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später. - Ihre Startregion ist nicht definiert. Geben Sie den Namen der Region im Feld „Startposition“ ein oder wählen Sie „Mein letzter Standort“ oder „Mein Zuhause“ als Startposition aus. diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index fe4e50aa06..a381cde10e 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -553,22 +553,6 @@ This listing could not be updated. yestext="OK"/> - -There was a problem uploading the text for a script due to the following reason: [REASON]. Please try again later. - fail - - - -There was a problem uploading the compiled script due to the following reason: [REASON]. Please try again later. - fail - - - -There was a problem saving a script due to the following reason: [REASON]. Please try re-saving the script later. -fail - - fail - -There was a problem saving a compiled script due to the following reason: [REASON]. Please try re-saving the script later. -fail - - - - Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtalo más tarde. - - - Hubo un problema al subir el script compilado por la siguiente razón: [REASON]. Por favor, inténtalo más tarde. - Hubo un problema al escribir los datos de la animación. Por favor, inténtalo más tarde. @@ -601,16 +595,10 @@ El objeto debe de haber sido borrado o estar fuera de alcance ('out of rang (**Cuidado** No podrás deshacer esta operación). - - Al guardar un script se ha producido un problema por: [REASON]. Por favor, vuelve a intentar guardarlo más tarde. - No se ha podido guardar el script porque no se pudo encontrar el objeto en que está incluído. El objeto debe de haber sido borrado o estar fuera de alcance ('out of range').. - - Al guardar un script compilado se ha producido un problema por: [REASON]. Por favor, vuelve a intentar guardarlo más tarde. - No está definida tu región inicial. Por favor, escribe el nombre de la región en el cuadro de Posición inicial o elige para esa posición Mi Base o Mi última posición. diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index 60e170cf7f..9c18203a83 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -129,10 +129,12 @@ Ce listing ne peut pas être mis à jour. We have unlisted your listing because the version folder is empty. You need to add items to the version folder to list the listing again. - There was a problem uploading the text for a script due to the following reason: [REASON]. Please try again later. - There was a problem uploading the compiled script due to the following reason: [REASON]. Please try again later. - There was a problem writing animation data. Please try again later. - There was a problem uploading the auction snapshot due to the following reason: [REASON] + + Une erreur est survenue lors de l'écriture des données d'animation. Veuillez réessayer ultérieurement. + + + Un problème est survenu lors du chargement du script compilé, suite au problème suivant : [REASON] + Unable to view the contents of more than one item at a time. Please select only one object and try again. @@ -428,7 +430,6 @@ Would you like to load the server's last saved version? (**Warning** This operation cannot be undone.) - There was a problem saving a script due to the following reason: [REASON]. Please try re-saving the script later. Could not save the script because the object it is in could not be found. The object may be out of range or may have been deleted. diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml index 5194be094f..6b96ef7a13 100644 --- a/indra/newview/skins/default/xui/it/notifications.xml +++ b/indra/newview/skins/default/xui/it/notifications.xml @@ -164,6 +164,10 @@ L'inizializzazione con il Marketplace non ha avuto successo a causa di un e '[ERROR_CODE]' + + Per creare l'annuncio, abbiamo corretto la gerarchia dei contenuti dell'annuncio. + + Questa azione cambierà il contenuto attivo di questo annuncio. Vuoi continuare? @@ -211,12 +215,6 @@ L'inizializzazione con il Marketplace non ha avuto successo a causa di un e L'annuncio è stato rimosso perché il magazzino è esaurito. Aggiungi altre unità alla cartella di magazzino prima di pubblicare nuovamente l'annuncio. - - C'è stato un problema importando il testo di uno script per la seguente ragione: [REASON]. Riprova più tardi. - - - C'è stato un problema importando lo script compilato per la seguente ragione: [REASON]. Riprova più tardi. - C'è stato un problema di scrittura dati dell'animazione. Riprova più tardi. @@ -584,16 +582,10 @@ Vuoi ripristinare l'ultima versione salvata sul server? (**Attenzione** Questa operazione non è reversibile) - - C'è stato un problema salvando lo script a causa del seguente motivo : [REASON]. Riprova a salvare lo script più tardi. - Non è stato possibile salvare lo script perchè l'oggetto che lo contiene non è stato trovato. L'oggetto potrebbe essere troppo lontano oppure essere stato cancellato. - - C'è stato un problema salvando lo script compilato a causa del seguente motivo: [REASON]. Riprova a salvare lo script più tardi. - La tua Regione di inizio non è stata definita. Per scegliere il luogo dove vuoi trovarti all'accesso, digita il nome della regione nel campo del luogo di partenza oppure scegli La mia ultima Ubicazione o Casa mia. diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index 2da5b26af6..af694454bc 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -219,16 +219,6 @@ - - 次の理由で、スクリプト用テキストのアップロード時に問題が起こりました。 -[REASON] -後でもう一度お試しください。 - - - 次の理由で、コンパイルしたスクリプトのアップロード時に問題が起こりました。 -[REASON] -後でもう一度お試しください。 - アニメーションデータの書き込みに問題があります。後でもう一度お試しください。 @@ -622,16 +612,10 @@ L$ が不足しているのでこのグループに参加することができ (**警告**:この操作後元に戻すことはできません) - - 次の理由で、スクリプトの保存に問題が起こりました。 [REASON]。 後でもう一度試してください。 - スクリプトの保存に失敗しました。スクリプトが入ったオブジェクトが見つかりません。 オブジェクトは範囲外か、または削除されているかもしれません。 - - 次の理由で、コンパイルしたスクリプトの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。 - ログイン位置が指定されていません。 ログイン位置の欄にリージョン名を入力するか、「最後にログアウトした場所」か「自宅(ホーム)」を選択してください。 diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index e16d1386b6..20788a927e 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -1,4 +1,4 @@ - + Nie pokazuj tego następnym razem @@ -155,12 +155,6 @@ Inicjalizacja Marketplace nieudana z powodu błędu sieci lub systemu. Spróbuj Twoja rzecz została usunięta z listy, ponieważ folder wersji jest pusty. Musisz dodać więcej jej jednostek do folderu wersji, aby można było ją ponownie wyświetlać na liście. - - W trakcie ładowania tekstu dla skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut. - - - W trakcie ładowania skompilowanego skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut. - Problem w zapisywaniu danych animacji. Spróbuj ponownie za kilka minut. @@ -541,16 +535,10 @@ Czy chcesz załadować ostatnią wersję zapisaną na serwerze? (*UWAGA* Ta operacja jest nieodwracalna.) - - Nie można zapisać skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. - Nie można zapisać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony. Obiekt może znajdować się zbyt daleko albo został usunięty. - - Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później. - Twoje miejsce startu nie zostało określone. Wpisz proszę nazwę regionu w lokalizację startu w polu Lokalizacja Startu lub wybierz 'Moja ostatnia lokalizacja' albo 'Miejsce Startu'. diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index 81e9d2fca4..f52fcf2b29 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -163,6 +163,10 @@ Ocorreu uma falha na inicialização do Marketplace devido a um erro do sistema '[ERROR_CODE]' + + Para criar sua listagem, consertamos a hierarquia do conteúdo da sua listagem. + + Esta ação alterará o conteúdo ativo desta listagem. Deseja continuar? @@ -210,12 +214,6 @@ Ocorreu uma falha na inicialização do Marketplace devido a um erro do sistema Removemos sua listagem porque o estoque está vazio. Você precisa adicionar mais unidades à pasta de estoque para que a listagem seja exibida novamente. - - Houve um problema com o carregamento do texto para um script devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde. - - - Houve um problema durante o carregamento do script compilado devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde. - Falha nos dados de inscrição de animação. Por favor, tente mais tarde. @@ -581,16 +579,10 @@ Gostaria de carregar a última versão salva? (**Aviso** Esta operação não pode ser desfeita). - - Houve um problema em salvar um script devido à seguinte razão: [REASON]. Tente salvar novamente o script mais tarde. - Não foi possível salvar o script pois o objeto em que ele está não pôde ser encontrado. O objeto pode estar fora de alcance ou ter sido deletado. - - Houve um problema em salvar uma compilação de script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script mais tarde. - Sua região de partida não está definida. Digite o nome da região na caixa 'Ponto de partida' ou selecione 'Meu último local' ou 'Minha casa' como ponto de partida. diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index d27952e384..2195719c7a 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -219,12 +219,6 @@ Публикация вашего списка прекращена, так как папка версии пуста. Добавьте предметы в папку запасов, чтобы опубликовать список снова. - - Ошибка при передаче текста скрипта по следующей причине: [REASON]. Повторите попытку позже. - - - Ошибка при передаче скомпилированного скрипта по следующей причине: [REASON]. Повторите попытку позже. - Ошибка при записи данных анимации. Повторите попытку позже. @@ -609,16 +603,10 @@ (**Предупреждение** Эту операцию нельзя отменить.) - - Ошибка при сохранении скрипта по следующей причине: [REASON]. Попробуйте сохранить скрипт через некоторое время. - Не удалось сохранить скрипт: не найден объект, в котором он находится. Возможно, объект находится вне допустимого диапазона или удален. - - Ошибка при сохранении скомпилированного скрипта по следующей причине: [REASON]. Попробуйте сохранить скрипт через некоторое время. - Ваш стартовый регион не определен. Введите название региона в поле "Место старта" или выберите в качестве места старта "Мое последнее место" или "Мой дом". diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml index 673d2d9c04..17ba4327e3 100644 --- a/indra/newview/skins/default/xui/tr/notifications.xml +++ b/indra/newview/skins/default/xui/tr/notifications.xml @@ -219,12 +219,6 @@ Bu öğeyi Pazaryeri üzerinde düzenlemek için [[URL] buraya tıklayın]. Sürüm klasörü boş olduğu için ilanınızı yayından kaldırdık. İlanı yeniden yayınlamak için sürüm klasörüne daha fazla birim eklemeniz gerekir. - - Aşağıdaki nedenden dolayı, bir komut dosyası için metin karşıya yüklenirken bir sorun oluştu: [REASON]. Lütfen daha sonra tekrar deneyin. - - - Aşağıdaki nedenden dolayı, derlenen komut dosyası karşıya yüklenirken bir sorun oluştu: [REASON]. Lütfen daha sonra tekrar deneyin. - Animasyon verileri yazılırken bir sorun oluştu. Lütfen daha sonra tekrar deneyin. @@ -603,16 +597,10 @@ Sunucunun son kaydedilmiş sürümünü yüklemek ister misiniz? (**Uyarı** Bu işlem geri alınamaz.) - - Aşağıdaki nedenden dolayı, komut dosyası kaydedilirken bir sorun oluştu: [REASON]. Lütfen komut dosyasını kaydetmeyi daha sonra tekrar deneyin. - İçinde olduğu nesne bulunamadığından komut dosyası kaydedilemiyor. Nesne aralık dışında ya da silinmiş olabilir. - - Aşağıdaki nedenden dolayı, derlenen komut dosyası kaydedilirken bir sorun oluştu: [REASON]. Lütfen komut dosyasını kaydetmeyi daha sonra tekrar deneyin. - Başlangıç Bölgeniz tanımlanmamış. Lütfen Başlangıç Konumu kutusuna Bölge adını yazın ya da Son Bulunduğum Konum veya Ana Konumumu Başlangıç Konumu olarak seçin. diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml index f7b7aad016..f007554a81 100644 --- a/indra/newview/skins/default/xui/zh/notifications.xml +++ b/indra/newview/skins/default/xui/zh/notifications.xml @@ -164,6 +164,10 @@ '[ERROR_CODE]' + + 為能建立你的刊登內容,我們修正了你刊登內容的層級架構。 + + 這個動作會改變此刊登的內容。 你確定要繼續嗎? @@ -211,12 +215,6 @@ 因為存量爲零,我們已經把你的刊登物下架。 你若希望重新刊登,必須先增加存量。 - - 上傳腳本文字時出問題,原因:[REASON]。 請稍候再試一次。 - - - 上傳已編譯腳本時出問題,原因:[REASON]。 請稍候再試一次。 - 寫入動作資料時出錯。 請稍候再試一次。 @@ -587,16 +585,10 @@ (*警告* 這動作無法還原。) - - 儲存腳本時出問題,原因:[REASON]。 請稍後再嘗試儲存腳本。 - 無法儲存腳本,找不到它所屬的物件。 該物件可能超出範圍或已被刪除。 - - 儲存編譯腳本時出問題,原因:[REASON]。 請稍後再嘗試儲存腳本。 - 你的起始地區尚未定義。 請在「開始位置」框裡輸入區域名,或選擇「我上一次位置」或「我的家」作為開始位置。 diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp index f51b190592..306c2362d7 100644 --- a/indra/win_crash_logger/llcrashloggerwindows.cpp +++ b/indra/win_crash_logger/llcrashloggerwindows.cpp @@ -174,22 +174,6 @@ bool handle_button_click(WORD button_id) return false; } - // See if "do this next time" is checked and save state - S32 crash_behavior = CRASH_BEHAVIOR_ASK; - LRESULT result = SendDlgItemMessage(gHwndReport, IDC_CHECK_AUTO, BM_GETCHECK, 0, 0); - if (result == BST_CHECKED) - { - if (button_id == IDOK) - { - crash_behavior = CRASH_BEHAVIOR_ALWAYS_SEND; - } - else if (button_id == IDCANCEL) - { - crash_behavior = CRASH_BEHAVIOR_NEVER_SEND; - } - ((LLCrashLoggerWindows*)LLCrashLogger::instance())->saveCrashBehaviorSetting(crash_behavior); - } - // We're done with this dialog. gFirstDialog = FALSE;