diff --git a/.hgeol b/.hgeol
new file mode 100644
index 0000000000..94205bd3ef
--- /dev/null
+++ b/.hgeol
@@ -0,0 +1,12 @@
+[repository]
+native = LF
+
+[patterns]
+path:indra/lscript/lscript_compile/windows/unistd.h = CRLF
+path:indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt = CRLF
+path:indra/tools/vstool/README.txt = CRLF
+**.h = native
+**.cpp = native
+**.py = native
+**.xml = native
+**.txt = native
diff --git a/.hgpatchinfo/Appearance-Misc.dep b/.hgpatchinfo/Appearance-Misc.dep
index 1cea281640..0f6e0edc63 100644
--- a/.hgpatchinfo/Appearance-Misc.dep
+++ b/.hgpatchinfo/Appearance-Misc.dep
@@ -1 +1 @@
-6fe7cc30ebc09cfe92787b71fa9dc55fd0396ec5
\ No newline at end of file
+471361eabfbf2865016a50e8087712b2266e83c7
\ No newline at end of file
diff --git a/.hgpatchinfo/RLVa.dep b/.hgpatchinfo/RLVa.dep
index 07f2e4f2f9..938785d899 100644
--- a/.hgpatchinfo/RLVa.dep
+++ b/.hgpatchinfo/RLVa.dep
@@ -1 +1 @@
-543c14d1270ba0327474287b08ae6463d8c03fdb
\ No newline at end of file
+264c7688ecdba8432a64f36a24e389eb85cbc10d
\ No newline at end of file
diff --git a/.hgpatchinfo/Viewer-Build.dep b/.hgpatchinfo/Viewer-Build.dep
index ac16606ab8..631a7e898a 100644
--- a/.hgpatchinfo/Viewer-Build.dep
+++ b/.hgpatchinfo/Viewer-Build.dep
@@ -1 +1 @@
-a48d42d15595c42a3ccb17a7c5ed246b87225cf3
\ No newline at end of file
+59b305ccfba9d4ba7935475d31f94b6ecfe415a4
\ No newline at end of file
diff --git a/.hgpatchinfo/Viewer-Build.desc b/.hgpatchinfo/Viewer-Build.desc
index b6edfa6f3b..8d302b3560 100644
--- a/.hgpatchinfo/Viewer-Build.desc
+++ b/.hgpatchinfo/Viewer-Build.desc
@@ -1,14 +1,11 @@
[Viewer/Build]
-- changed : compiler options for "Release with Debug" builds
-- changed : compiler and linker options for "Release" builds
-- changed : removed LL's changeset tags and added new (consistent) SL-X.Y.Z tags for releases
-- changed : break into the debugger rather than forcing the process into an unrecoverable state for "llerrs" on non-release builds
+* Changed compiler options for "Release with Debug" builds
+* Changed compiler and linker options for "Release" builds
+* Removed LL's changeset tags and added new (consistent) SL-X.Y.Z tags for releases
+* Break into the debugger rather than forcing the process into an unrecoverable state for "llerrs" on non-release builds
-> Windows only
-- changed : set the "UNATTENDED" flag to FALSE for all (Windows) *OS build configurations
-- changed : updated OpenJPEG package with debug information for crash debugging
-- fixed : *OS builds don't set the default Visual Studio project and configuration
-- fixed : libpng is built with "Whole Program Optimization" and causing slow linker performance
- -> "MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance"
- -> causes the linker to abort the current run and start over
-- fixed : viewer fails to compile with only the Windows 8 SDK installed
-- fixed : viewer won't compile when bison v2.7.1 is installed
+* Set the "UNATTENDED" flag to FALSE for all (Windows) *OS build configurations
+* CATZ-234: Updated FMOD Ex library to v4.44.61 (Windows)
+* CATZ-232: Updated OpenJPEG library to v1.5.2 (Windows)
+* [FIXED] Viewer fails to compile with only the Windows 8 SDK installed
+* [FIXED] JpegLib is built with "Whole Program Optimization" and causing slow linker performance
diff --git a/autobuild.xml b/autobuild.xml
index 943616ed69..6170fb62e6 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -71,9 +71,9 @@
archive
name
darwin
@@ -295,9 +295,9 @@
archive
name
darwin
@@ -347,9 +347,9 @@
archive
name
darwin
@@ -975,9 +975,9 @@
archive
name
darwin
@@ -1301,9 +1301,9 @@
archive
name
darwin
@@ -1673,11 +1673,11 @@
archive
name
darwin
@@ -2135,9 +2135,9 @@
archive
name
darwin
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 9eba6d9045..4f0fd0df23 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -312,6 +312,9 @@ if (DARWIN)
set(CMAKE_CXX_LINK_FLAGS "-Wl,-no_compact_unwind -Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
set(DARWIN_extra_cstar_flags "-g -Wno-unused-local-typedef -Wno-deprecated-declarations")
+ # Take a deep breath and turn on C++11...
+ set(DARWIN_extra_cstar_flags "-std=c++11 -stdlib=libc++ -Wno-overloaded-virtual ${DARWIN_extra_cstar_flags}")
+ #
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DARWIN_extra_cstar_flags}")
# NOTE: it's critical that the optimization flag is put in front.
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 9b4feee86d..fcd584cab4 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -158,7 +158,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
#set(CMAKE_OSX_SYSROOT macosx10.9)
if(IS_DIRECTORY "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk")
# Assume Xcode 7 if El Capitan SDK is present
- set(XCODE_VERSION 7.0)
+ set(XCODE_VERSION 7.3)
set(CMAKE_OSX_SYSROOT macosx10.11)
message(STATUS "OS X SDK 10.11 found.")
elseif(IS_DIRECTORY "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk")
@@ -180,7 +180,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_XCODE_ATTRIBUTE_GCC_STRICT_ALIASING NO)
set(CMAKE_XCODE_ATTRIBUTE_GCC_FAST_MATH NO)
set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS ssse3)
- set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
+ # Need libc++ for C++11 and Boost
+ #set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
# Build only for i386 by default, system default on MacOSX 10.6+ is x86_64
diff --git a/indra/llcommon/llfile.h b/indra/llcommon/llfile.h
index 3e25228aeb..6dfabd5f94 100644
--- a/indra/llcommon/llfile.h
+++ b/indra/llcommon/llfile.h
@@ -45,7 +45,10 @@ typedef FILE LLFILE;
typedef struct _stat llstat;
#else
typedef struct stat llstat;
-#include
+// This file only exists on Linux
+# if LL_LINUX
+# include
+# endif
#endif
#ifndef S_ISREG
diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h
index 6aa62554c3..2f194658b5 100644
--- a/indra/llcommon/llpreprocessor.h
+++ b/indra/llcommon/llpreprocessor.h
@@ -201,7 +201,7 @@
#elif LL_LINUX
#define LL_TYPEOF(exp) typeof(exp)
#elif LL_DARWIN
-#define LL_TYPEOF(exp) typeof(exp)
+#define LL_TYPEOF(exp) decltype(exp)
#endif
#define LL_TO_STRING_HELPER(x) #x
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index a75744617a..9a24087fcd 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -444,7 +444,7 @@ public:
struct LLDictionaryLess
{
public:
- bool operator()(const std::string& a, const std::string& b)
+ bool operator()(const std::string& a, const std::string& b) const
{
return (LLStringUtil::precedesDict(a, b) ? true : false);
}
diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp
index 96e0c3f16f..db881954ba 100644
--- a/indra/llcommon/lluri.cpp
+++ b/indra/llcommon/lluri.cpp
@@ -261,7 +261,7 @@ static BOOL isDefault(const std::string& scheme, U16 port)
void LLURI::parseAuthorityAndPathUsingOpaque()
{
- if (mScheme == "http" || mScheme == "https" || mScheme == "hop" ||
+ if (mScheme == "http" || mScheme == "https" || mScheme == "hop" || mScheme == "inworldz" || mScheme == "iw" ||
mScheme == "ftp" || mScheme == "secondlife" ||
mScheme == "x-grid-location-info")
{
diff --git a/indra/llmath/v4color.cpp b/indra/llmath/v4color.cpp
index 79a64b24f2..aa84374372 100644
--- a/indra/llmath/v4color.cpp
+++ b/indra/llmath/v4color.cpp
@@ -122,7 +122,7 @@ LLColor4 LLColor4::cyan6(0.2f, 0.6f, 0.6f, 1.0f);
//////////////////////////////////////////////////////////////////////////////
// conversion
-LLColor4::operator const LLColor4U() const
+LLColor4::operator /*const*/ LLColor4U() const
{
return LLColor4U(
(U8)llclampb(ll_round(mV[VRED]*255.f)),
diff --git a/indra/llmath/v4color.h b/indra/llmath/v4color.h
index 0d632f59be..7d553ef62a 100644
--- a/indra/llmath/v4color.h
+++ b/indra/llmath/v4color.h
@@ -131,7 +131,7 @@ class LLColor4
friend const LLColor4& operator*=(LLColor4 &a, const LLColor4 &b); // Doesn't multiply alpha! (for lighting)
// conversion
- operator const LLColor4U() const;
+ operator /*const*/ LLColor4U() const;
// Basic color values.
static LLColor4 red;
diff --git a/indra/llmath/v4coloru.h b/indra/llmath/v4coloru.h
index 5d525762a4..2101efc5fc 100644
--- a/indra/llmath/v4coloru.h
+++ b/indra/llmath/v4coloru.h
@@ -130,7 +130,7 @@ public:
static BOOL parseColor4U(const std::string& buf, LLColor4U* value);
// conversion
- operator const LLColor4() const
+ operator /*const*/ LLColor4() const
{
return LLColor4(*this);
}
diff --git a/indra/llui/llstatgraph.h b/indra/llui/llstatgraph.h
index f381e92a4d..ba7cfc5d10 100644
--- a/indra/llui/llstatgraph.h
+++ b/indra/llui/llstatgraph.h
@@ -126,7 +126,7 @@ private:
F32 mValue;
LLUIColor mColor;
- bool operator <(const Threshold& other)
+ bool operator <(const Threshold& other) const
{
return mValue < other.mValue;
}
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index c8f971c299..e3b67ffd35 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -42,7 +42,7 @@
// hop:// protocol>
//#define APP_HEADER_REGEX "((x-grid-location-info://[-\\w\\.]+/app)|(secondlife:///app))"
-#define APP_HEADER_REGEX "(((hop|x-grid-location-info)://[-\\w\\.\\:\\@]+/app)|((hop|secondlife):///app))"
+#define APP_HEADER_REGEX "(((hop|x-grid-location-info)://[-\\w\\.\\:\\@]+/app)|((hop|secondlife|inworldz|iw):///app))"
//
// Utility functions
@@ -340,7 +340,9 @@ std::string LLUrlEntryHTTPNoProtocol::getTooltip(const std::string &url) const
LLUrlEntryInvalidSLURL::LLUrlEntryInvalidSLURL()
: LLUrlEntryBase()
{
- mPattern = boost::regex("(http://(maps.secondlife.com|slurl.com)/secondlife/|secondlife://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
+ // Inworldz special
+ //mPattern = boost::regex("(http://(maps.secondlife.com|slurl.com)/secondlife/|secondlife://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
+ mPattern = boost::regex("(http://(maps.secondlife.com|slurl.com)/secondlife/|(secondlife|inworldz|iw)://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_http.xml";
mTooltip = LLTrans::getString("TooltipHttpUrl");
@@ -1016,7 +1018,7 @@ LLUrlEntryObjectIM::LLUrlEntryObjectIM()
{
// hop:// protocol; Ansa: Stop at first space so we can use it in notifications!
//mPattern = boost::regex("secondlife:///app/objectim/[\\da-f-]+\?.*",
- mPattern = boost::regex("(hop|secondlife):///app/objectim/[\\da-f-]+\?[^ \t\r\n\v\f]*",
+ mPattern = boost::regex("(hop|secondlife|inworldz|iw):///app/objectim/[\\da-f-]+\?[^ \t\r\n\v\f]*",
//
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_objectim.xml";
@@ -1145,7 +1147,9 @@ void LLUrlEntryParcel::processParcelInfo(const LLParcelData& parcel_data)
//
LLUrlEntryPlace::LLUrlEntryPlace()
{
- mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", //
+ // Inworldz special
+ //mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", //
+ mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|((secondlife|inworldz|iw)://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", //
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slurl.xml";
mTooltip = LLTrans::getString("TooltipSLURL");
@@ -1327,7 +1331,7 @@ std::string LLUrlEntryTeleport::getLocation(const std::string &url) const
//
LLUrlEntrySL::LLUrlEntrySL()
{
- mPattern = boost::regex("(hop|secondlife)://(\\w+)?(:\\d+)?/\\S+", //
+ mPattern = boost::regex("(hop|secondlife|inworldz|iw)://(\\w+)?(:\\d+)?/\\S+", //
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipSLAPP");
@@ -1344,7 +1348,7 @@ std::string LLUrlEntrySL::getLabel(const std::string &url, const LLUrlLabelCallb
//
LLUrlEntrySLLabel::LLUrlEntrySLLabel()
{
- mPattern = boost::regex("\\[(hop|secondlife)://\\S+[ \t]+[^\\]]+\\]", //
+ mPattern = boost::regex("\\[(hop|secondlife|inworldz|iw)://\\S+[ \t]+[^\\]]+\\]", //
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipSLAPP");
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index a78fec1f2e..cd6147fbf2 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -236,8 +236,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAClosestPolicy,
NSOpenGLPFAAccelerated,
- NSOpenGLPFASampleBuffers, (samples > 0 ? 1 : 0),
- NSOpenGLPFASamples, samples,
+ NSOpenGLPFASampleBuffers, static_cast(samples > 0 ? 1 : 0),
+ NSOpenGLPFASamples, static_cast(samples),
NSOpenGLPFAStencilSize, 8,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFAAlphaSize, 8,
@@ -380,8 +380,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
- (void)mouseMoved:(NSEvent *)theEvent
{
float mouseDeltas[2] = {
- [theEvent deltaX],
- [theEvent deltaY]
+ static_cast([theEvent deltaX]),
+ static_cast([theEvent deltaY])
};
callDeltaUpdate(mouseDeltas, 0);
@@ -401,8 +401,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
// The old CoreGraphics APIs we previously relied on are now flagged as obsolete.
// NSEvent isn't obsolete, and provides us with the correct deltas.
float mouseDeltas[2] = {
- [theEvent deltaX],
- [theEvent deltaY]
+ static_cast([theEvent deltaX]),
+ static_cast([theEvent deltaY])
};
callDeltaUpdate(mouseDeltas, 0);
@@ -604,13 +604,13 @@ attributedStringInfo getSegments(NSAttributedString *str)
if (mMarkedTextAllowed)
{
unsigned int selected[2] = {
- selectedRange.location,
- selectedRange.length
+ static_cast(selectedRange.location),
+ static_cast(selectedRange.length)
};
unsigned int replacement[2] = {
- replacementRange.location,
- replacementRange.length
+ static_cast(replacementRange.location),
+ static_cast(replacementRange.length)
};
int string_length = [aString length];
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 07861f125e..978a5d0aac 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -553,7 +553,7 @@ void getPreeditLocation(float *location, unsigned int length)
preeditor->getPreeditLocation(length, &coord, &rect, NULL);
- float c[4] = {coord.mX, coord.mY, 0, 0};
+ float c[4] = {static_cast(coord.mX), static_cast(coord.mY), 0, 0};
convertRectToScreen(gWindowImplementation->getWindow(), c);
@@ -909,7 +909,7 @@ BOOL LLWindowMacOSX::setPosition(const LLCoordScreen position)
{
if(mWindow)
{
- float pos[2] = {position.mX, position.mY};
+ float pos[2] = {static_cast(position.mX), static_cast(position.mY)};
setWindowPos(mWindow, pos);
}
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index 72c6cc93da..adb3e2f732 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -123,7 +123,8 @@ if (DARWIN)
PREFIX ""
BUILD_WITH_INSTALL_RPATH 1
INSTALL_NAME_DIR "@executable_path"
- LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
+ CXX_FLAGS "-std=c++11 -stdlib=libc++"
+ LINK_FLAGS "-stdlib=libc++ -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
)
add_custom_command(TARGET media_plugin_cef
diff --git a/indra/media_plugins/quicktime/CMakeLists.txt b/indra/media_plugins/quicktime/CMakeLists.txt
index c5615145be..4e3a564cd8 100644
--- a/indra/media_plugins/quicktime/CMakeLists.txt
+++ b/indra/media_plugins/quicktime/CMakeLists.txt
@@ -75,7 +75,7 @@ if (QUICKTIME)
PREFIX ""
BUILD_WITH_INSTALL_RPATH 1
INSTALL_NAME_DIR "@executable_path"
- LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
+ LINK_FLAGS "-stdlib=libc++ -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
)
# We use a bunch of deprecated system APIs.
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 1530ad2dc6..27a113368d 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1548,9 +1548,6 @@ set(viewer_HEADER_FILES
pieseparator.h
pieslice.h
pipeline.h
- roles_constants.h
- qtoolalign.h
- quickprefs.h
rlvactions.h
rlvdefines.h
rlvhandler.h
@@ -1561,6 +1558,9 @@ set(viewer_HEADER_FILES
rlvextensions.h
rlvfloaters.h
rlvui.h
+ roles_constants.h
+ qtoolalign.h
+ quickprefs.h
sanitycheck.h
streamtitledisplay.h
utilitybar.h
diff --git a/indra/newview/aoengine.cpp b/indra/newview/aoengine.cpp
index 0188fba6f4..aa242241d6 100644
--- a/indra/newview/aoengine.cpp
+++ b/indra/newview/aoengine.cpp
@@ -574,17 +574,21 @@ void AOEngine::checkSitCancel()
if (foreignAnimations(seat))
{
- LLUUID animation = mCurrentSet->getStateByRemapID(ANIM_AGENT_SIT)->mCurrentAnimationID;
- if (animation.notNull())
+ AOSet::AOState* aoState = mCurrentSet->getStateByRemapID(ANIM_AGENT_SIT);
+ if (aoState)
{
- LL_DEBUGS("AOEngine") << "Stopping sit animation due to foreign animations running" << LL_ENDL;
- gAgent.sendAnimationRequest(animation, ANIM_REQUEST_STOP);
- // remove cycle point cover-up
- gAgent.sendAnimationRequest(ANIM_AGENT_SIT_GENERIC, ANIM_REQUEST_STOP);
- gAgentAvatarp->LLCharacter::stopMotion(animation);
- mSitCancelTimer.stop();
- // stop cycle tiemr
- mCurrentSet->stopTimer();
+ LLUUID animation = aoState->mCurrentAnimationID;
+ if (animation.notNull())
+ {
+ LL_DEBUGS("AOEngine") << "Stopping sit animation due to foreign animations running" << LL_ENDL;
+ gAgent.sendAnimationRequest(animation, ANIM_REQUEST_STOP);
+ // remove cycle point cover-up
+ gAgent.sendAnimationRequest(ANIM_AGENT_SIT_GENERIC, ANIM_REQUEST_STOP);
+ gAgentAvatarp->LLCharacter::stopMotion(animation);
+ mSitCancelTimer.stop();
+ // stop cycle tiemr
+ mCurrentSet->stopTimer();
+ }
}
}
}
@@ -931,6 +935,11 @@ BOOL AOEngine::removeSet(AOSet* set)
BOOL AOEngine::removeAnimation(const AOSet* set, AOSet::AOState* state, S32 index)
{
+ if (index < 0)
+ {
+ return FALSE;
+ }
+
S32 numOfAnimations = state->mAnimations.size();
if (numOfAnimations == 0)
{
@@ -1717,9 +1726,16 @@ void AOEngine::onNotecardLoadComplete(LLVFS* vfs, const LLUUID& assetUUID, LLAss
S32 notecardSize = vfs->getSize(assetUUID, type);
char* buffer = new char[notecardSize];
- vfs->getData(assetUUID, type, (U8*) buffer, 0, notecardSize);
- AOEngine::instance().parseNotecard(buffer);
+ S32 ret = vfs->getData(assetUUID, type, reinterpret_cast(buffer), 0, notecardSize);
+ if (ret > 0)
+ {
+ AOEngine::instance().parseNotecard(buffer);
+ }
+ else
+ {
+ delete[] buffer;
+ }
}
void AOEngine::parseNotecard(const char* buffer)
@@ -1739,7 +1755,7 @@ void AOEngine::parseNotecard(const char* buffer)
}
std::string text(buffer);
- delete buffer;
+ delete[] buffer;
std::vector lines;
LLStringUtil::getTokens(text, lines, "\n");
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 9f2b858e2e..aea7ecd0de 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1309,6 +1309,17 @@
Value
1
+ RLVaExperimentalCommands
+
RLVaHideLockedLayers
- RLVaShowNameTags
-
RLVaTopLevelMenu