diff options
| -rwxr-xr-x | build.sh | 7 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 8 | ||||
| -rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 73 | ||||
| -rw-r--r-- | indra/llappearance/llavatarappearance.cpp | 1 | ||||
| -rw-r--r-- | indra/llcommon/lleventdispatcher.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/llinstancetracker.h | 31 | ||||
| -rw-r--r-- | indra/llcommon/llmemory.cpp | 19 | ||||
| -rw-r--r-- | indra/llcommon/llpreprocessor.h | 10 | ||||
| -rw-r--r-- | indra/llcommon/llsys.cpp | 32 | ||||
| -rw-r--r-- | indra/llcommon/lltrace.h | 2 | ||||
| -rw-r--r-- | indra/llcommon/tests/llsdserialize_test.cpp | 2 | ||||
| -rw-r--r-- | indra/llimage/llimagetga.cpp | 2 | ||||
| -rw-r--r-- | indra/llmath/v4color.cpp | 2 | ||||
| -rw-r--r-- | indra/llmath/v4color.h | 2 | ||||
| -rw-r--r-- | indra/llmath/v4coloru.h | 2 | ||||
| -rw-r--r-- | indra/llwindow/llopenglview-objc.mm | 20 | ||||
| -rw-r--r-- | indra/llwindow/llwindowmacosx.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llappdelegate-objc.mm | 2 | ||||
| -rw-r--r-- | indra/newview/llappviewermacosx.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llpanelexperiencelisteditor.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llpresetsmanager.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 3 | 
22 files changed, 148 insertions, 94 deletions
| @@ -273,6 +273,13 @@ do                else                    record_event "no autobuild metadata at '$build_dir/autobuild-package.xml'"                fi +              if [ -r "$build_dir/newview/viewer_version.txt" ] +              then +                  begin_section "Viewer Version" +                  python_cmd "$helpers/codeticket.py" addoutput "Viewer Version" "$(<"$build_dir/newview/viewer_version.txt")" --mimetype inline-text \ +                      || fatal "Upload of viewer version failed" +                  end_section "Viewer Version" +              fi                ;;              Doxygen)                if [ -r "$build_dir/doxygen_warnings.log" ] diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index f792280654..b582b47f15 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -156,7 +156,13 @@ if (DARWIN)    set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")    set(DARWIN_extra_cstar_flags "-Wno-unused-local-typedef -Wno-deprecated-declarations") -  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags}") +  # The viewer code base can now be successfully compiled with -std=c++14. But +  # turning that on in the generic viewer-build-variables/variables file would +  # potentially require tweaking each of our ~50 third-party library builds. +  # Until we decide to set -std=c++14 in viewer-build-variables/variables, set +  # it locally here: we want to at least prevent inadvertently reintroducing +  # viewer code that would fail with C++14. +  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags} -std=c++14")    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  ${DARWIN_extra_cstar_flags}")    # NOTE: it's critical that the optimization flag is put in front.    # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered. diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 96d3e39a06..024bfe14a1 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -3,6 +3,9 @@ include(LLTestCommand)  include(GoogleMock)  include(Tut) +#***************************************************************************** +#   LL_ADD_PROJECT_UNIT_TESTS +#*****************************************************************************  MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)    # Given a project name and a list of sourcefiles (with optional properties on each),    # add targets to build and run the tests specified. @@ -74,19 +77,17 @@ INCLUDE(GoogleMock)      # Per-codefile additional / external source, header, and include dir property extraction      #      # Source -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_SOURCE_FILES ${source} LL_TEST_ADDITIONAL_SOURCE_FILES) -    IF(${name}_test_additional_SOURCE_FILES MATCHES NOTFOUND) -      SET(${name}_test_additional_SOURCE_FILES "") -    ENDIF(${name}_test_additional_SOURCE_FILES MATCHES NOTFOUND) -    SET(${name}_test_SOURCE_FILES ${source} tests/${name}_test.${extension} ${alltest_SOURCE_FILES} ${${name}_test_additional_SOURCE_FILES} ) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_SOURCE_FILES ${source} LL_TEST_ADDITIONAL_SOURCE_FILES) +    SET(${name}_test_SOURCE_FILES +      ${source} +      tests/${name}_test.${extension} +      ${alltest_SOURCE_FILES} +      ${${name}_test_additional_SOURCE_FILES} )      IF(LL_TEST_VERBOSE)        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_SOURCE_FILES ${${name}_test_SOURCE_FILES}")      ENDIF(LL_TEST_VERBOSE)      # Headers -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_HEADER_FILES ${source} LL_TEST_ADDITIONAL_HEADER_FILES) -    IF(${name}_test_additional_HEADER_FILES MATCHES NOTFOUND) -      SET(${name}_test_additional_HEADER_FILES "") -    ENDIF(${name}_test_additional_HEADER_FILES MATCHES NOTFOUND) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_HEADER_FILES ${source} LL_TEST_ADDITIONAL_HEADER_FILES)      SET(${name}_test_HEADER_FILES ${name}.h ${${name}_test_additional_HEADER_FILES})      set_source_files_properties(${${name}_test_HEADER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE)      LIST(APPEND ${name}_test_SOURCE_FILES ${${name}_test_HEADER_FILES}) @@ -94,10 +95,7 @@ INCLUDE(GoogleMock)        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_HEADER_FILES ${${name}_test_HEADER_FILES}")      ENDIF(LL_TEST_VERBOSE)      # Include dirs -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_INCLUDE_DIRS ${source} LL_TEST_ADDITIONAL_INCLUDE_DIRS) -    IF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND) -      SET(${name}_test_additional_INCLUDE_DIRS "") -    ENDIF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_INCLUDE_DIRS ${source} LL_TEST_ADDITIONAL_INCLUDE_DIRS)      INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${${name}_test_additional_INCLUDE_DIRS} )      IF(LL_TEST_VERBOSE)        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_INCLUDE_DIRS ${${name}_test_additional_INCLUDE_DIRS}") @@ -113,15 +111,9 @@ INCLUDE(GoogleMock)      #      # WARNING: it's REALLY IMPORTANT to not mix these. I guarantee it will not work in the future. + poppy 2009-04-19      # Projects -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_PROJECTS ${source} LL_TEST_ADDITIONAL_PROJECTS) -    IF(${name}_test_additional_PROJECTS MATCHES NOTFOUND) -      SET(${name}_test_additional_PROJECTS "") -    ENDIF(${name}_test_additional_PROJECTS MATCHES NOTFOUND) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_PROJECTS ${source} LL_TEST_ADDITIONAL_PROJECTS)      # Libraries -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_LIBRARIES ${source} LL_TEST_ADDITIONAL_LIBRARIES) -    IF(${name}_test_additional_LIBRARIES MATCHES NOTFOUND) -      SET(${name}_test_additional_LIBRARIES "") -    ENDIF(${name}_test_additional_LIBRARIES MATCHES NOTFOUND) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_LIBRARIES ${source} LL_TEST_ADDITIONAL_LIBRARIES)      IF(LL_TEST_VERBOSE)        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_PROJECTS ${${name}_test_additional_PROJECTS}")        MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_LIBRARIES ${${name}_test_additional_LIBRARIES}") @@ -129,13 +121,14 @@ INCLUDE(GoogleMock)      # Add to project      TARGET_LINK_LIBRARIES(PROJECT_${project}_TEST_${name} ${alltest_LIBRARIES} ${alltest_DEP_TARGETS} ${${name}_test_additional_PROJECTS} ${${name}_test_additional_LIBRARIES} )      # Compile-time Definitions -    GET_SOURCE_FILE_PROPERTY(${name}_test_additional_CFLAGS ${source} LL_TEST_ADDITIONAL_CFLAGS) -     IF(NOT ${name}_test_additional_CFLAGS MATCHES NOTFOUND) -       SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES COMPILE_FLAGS ${${name}_test_additional_CFLAGS} ) -       IF(LL_TEST_VERBOSE) -         MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_CFLAGS ${${name}_test_additional_CFLAGS}") -       ENDIF(LL_TEST_VERBOSE) -     ENDIF(NOT ${name}_test_additional_CFLAGS MATCHES NOTFOUND) +    GET_OPT_SOURCE_FILE_PROPERTY(${name}_test_additional_CFLAGS ${source} LL_TEST_ADDITIONAL_CFLAGS) +    SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} +      PROPERTIES +      COMPILE_FLAGS "${${name}_test_additional_CFLAGS}" +      COMPILE_DEFINITIONS "LL_TEST=${name};LL_TEST_${name}") +    IF(LL_TEST_VERBOSE) +      MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_CFLAGS ${${name}_test_additional_CFLAGS}") +    ENDIF(LL_TEST_VERBOSE)      #      # Setup test targets @@ -175,6 +168,19 @@ INCLUDE(GoogleMock)    ADD_DEPENDENCIES(${project} ${project}_tests)  ENDMACRO(LL_ADD_PROJECT_UNIT_TESTS) +#***************************************************************************** +#   GET_OPT_SOURCE_FILE_PROPERTY +#***************************************************************************** +MACRO(GET_OPT_SOURCE_FILE_PROPERTY var filename property) +  GET_SOURCE_FILE_PROPERTY(${var} "${filename}" "${property}") +  IF("${${var}}" MATCHES NOTFOUND) +    SET(${var} "") +  ENDIF("${${var}}" MATCHES NOTFOUND) +ENDMACRO(GET_OPT_SOURCE_FILE_PROPERTY) + +#***************************************************************************** +#   LL_ADD_INTEGRATION_TEST +#*****************************************************************************  FUNCTION(LL_ADD_INTEGRATION_TEST       testname      additional_source_files @@ -184,7 +190,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST    if(TEST_DEBUG)      message(STATUS "Adding INTEGRATION_TEST_${testname} - debug output is on")    endif(TEST_DEBUG) -   +    SET(source_files      tests/${testname}_test.cpp      ${CMAKE_SOURCE_DIR}/test/test.cpp @@ -206,7 +212,11 @@ FUNCTION(LL_ADD_INTEGRATION_TEST      message(STATUS "ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})")    endif(TEST_DEBUG)    ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files}) -  SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}") +  SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} +    PROPERTIES +    RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}" +    COMPILE_DEFINITIONS "LL_TEST=${testname};LL_TEST_${testname}" +    )    if(USESYSTEMLIBS)      SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES COMPILE_FLAGS -I"${TUT_INCLUDE_DIR}") @@ -268,6 +278,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST  ENDFUNCTION(LL_ADD_INTEGRATION_TEST) +#***************************************************************************** +#   SET_TEST_PATH +#*****************************************************************************  MACRO(SET_TEST_PATH LISTVAR)    IF(WINDOWS)      # We typically build/package only Release variants of third-party diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp index ab6d77dd9b..e5089f028f 100644 --- a/indra/llappearance/llavatarappearance.cpp +++ b/indra/llappearance/llavatarappearance.cpp @@ -2125,4 +2125,3 @@ LLAvatarAppearance::LLMaskedMorph::LLMaskedMorph(LLVisualParam *morph_target, BO  		target->addPendingMorphMask();  	}  } - diff --git a/indra/llcommon/lleventdispatcher.h b/indra/llcommon/lleventdispatcher.h index 7acc61de4e..9e1244ef5b 100644 --- a/indra/llcommon/lleventdispatcher.h +++ b/indra/llcommon/lleventdispatcher.h @@ -47,13 +47,13 @@  // namespace) that a global 'nil' macro breaks badly.  #if defined(nil)  // Capture the value of the macro 'nil', hoping int is an appropriate type. -static const int nil_(nil); +static const auto nil_(nil);  // Now forget the macro.  #undef nil  // Finally, reintroduce 'nil' as a properly-scoped alias for the previously-  // defined const 'nil_'. Make it static since otherwise it produces duplicate-  // symbol link errors later. -static const int& nil(nil_); +static const auto& nil(nil_);  #endif  #include <string> diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 9783644e66..910c8dbd99 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -35,6 +35,31 @@  #include <boost/iterator/transform_iterator.hpp>  #include <boost/iterator/indirect_iterator.hpp> +// As of 2017-05-06, as far as nat knows, only clang supports __has_feature(). +// Unfortunately VS2013's preprocessor shortcut logic doesn't prevent it from +// producing (fatal) warnings for defined(__clang__) && __has_feature(...). +// Have to work around that. +#if ! defined(__clang__) +#define __has_feature(x) 0 +#endif // __clang__ + +#if defined(LL_TEST_llinstancetracker) && __has_feature(cxx_noexcept) +// ~LLInstanceTracker() performs llassert_always() validation. That's fine in +// production code, since the llassert_always() is implemented as an LL_ERRS +// message, which will crash-with-message. In our integration test executable, +// though, this llassert_always() throws an exception instead so we can test +// error conditions and continue running the test. However -- as of C++11, +// destructors are implicitly noexcept(true). Unless we mark +// ~LLInstanceTracker() noexcept(false), the test executable crashes even on +// the ATTEMPT to throw. +#define LLINSTANCETRACKER_DTOR_NOEXCEPT noexcept(false) +#else +// If we're building for production, or in fact building *any other* test, or +// we're using a compiler that doesn't support __has_feature(), or we're not +// compiling with a C++ version that supports noexcept -- don't specify it. +#define LLINSTANCETRACKER_DTOR_NOEXCEPT +#endif +  /**   * Base class manages "class-static" data that must actually have singleton   * semantics: one instance per process, rather than one instance per module as @@ -198,11 +223,11 @@ protected:  		getStatic();  		add_(key);   	} -	virtual ~LLInstanceTracker()  +	virtual ~LLInstanceTracker() LLINSTANCETRACKER_DTOR_NOEXCEPT  	{   		// it's unsafe to delete instances of this type while all instances are being iterated over.  		llassert_always(getStatic().getDepth() == 0); -		remove_();		 +		remove_();  	}  	virtual void setKey(KEY key) { remove_(); add_(key); }  	virtual const KEY& getKey() const { return mInstanceKey; } @@ -335,7 +360,7 @@ protected:  		getStatic();  		getSet_().insert(static_cast<T*>(this));  	} -	virtual ~LLInstanceTracker() +	virtual ~LLInstanceTracker() LLINSTANCETRACKER_DTOR_NOEXCEPT  	{  		// it's unsafe to delete instances of this type while all instances are being iterated over.  		llassert_always(getStatic().getDepth() == 0); diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp index 9f9c3af892..049e962638 100644 --- a/indra/llcommon/llmemory.cpp +++ b/indra/llcommon/llmemory.cpp @@ -267,16 +267,15 @@ U64 LLMemory::getCurrentRSS()  U64 LLMemory::getCurrentRSS()  {  	U64 residentSize = 0; -	task_basic_info_64_data_t basicInfo; -	mach_msg_type_number_t  basicInfoCount = TASK_BASIC_INFO_64_COUNT; -	if (task_info(mach_task_self(), TASK_BASIC_INFO_64, (task_info_t)&basicInfo, &basicInfoCount) == KERN_SUCCESS) -	{ -		residentSize = basicInfo.resident_size; - -		// If we ever wanted it, the process virtual size is also available as: -		// virtualSize = basicInfo.virtual_size; -		 -//		LL_INFOS() << "resident size is " << residentSize << LL_ENDL; +	mach_task_basic_info_data_t basicInfo; +	mach_msg_type_number_t  basicInfoCount = MACH_TASK_BASIC_INFO_COUNT; +	if (task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&basicInfo, &basicInfoCount) == KERN_SUCCESS) +	{ +//		residentSize = basicInfo.resident_size; +		// Although this method is defined to return the "resident set size," +		// in fact what callers want from it is the total virtual memory +		// consumed by the application. +		residentSize = basicInfo.virtual_size;  	}  	else  	{ diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index 3698d9db44..2879038c36 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -192,13 +192,9 @@  # define LL_COMMON_API  #endif // LL_COMMON_LINK_SHARED -#if LL_WINDOWS -#define LL_TYPEOF(exp) decltype(exp) -#elif LL_LINUX -#define LL_TYPEOF(exp) typeof(exp) -#elif LL_DARWIN -#define LL_TYPEOF(exp) typeof(exp) -#endif +// With C++11, decltype() is standard. We no longer need a platform-dependent +// macro to get the type of an expression. +#define LL_TYPEOF(expr) decltype(expr)  #define LL_TO_STRING_HELPER(x) #x  #define LL_TO_STRING(x) LL_TO_STRING_HELPER(x) diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index 265c637b69..fd1828b1cc 100644 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -1128,10 +1128,10 @@ LLSD LLMemoryInfo::loadStatsMap()  	//  	{ -		vm_statistics_data_t vmstat; -		mach_msg_type_number_t vmstatCount = HOST_VM_INFO_COUNT; +		vm_statistics64_data_t vmstat; +		mach_msg_type_number_t vmstatCount = HOST_VM_INFO64_COUNT; -		if (host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t) &vmstat, &vmstatCount) != KERN_SUCCESS) +		if (host_statistics64(mach_host_self(), HOST_VM_INFO64, (host_info64_t) &vmstat, &vmstatCount) != KERN_SUCCESS)  	{  			LL_WARNS("LLMemoryInfo") << "Unable to collect memory information" << LL_ENDL;  		} @@ -1189,20 +1189,20 @@ LLSD LLMemoryInfo::loadStatsMap()  	//  		{ -		task_basic_info_64_data_t taskinfo; -		unsigned taskinfoSize = sizeof(taskinfo); -		 -		if (task_info(mach_task_self(), TASK_BASIC_INFO_64, (task_info_t) &taskinfo, &taskinfoSize) != KERN_SUCCESS) +			mach_task_basic_info_data_t taskinfo; +			mach_msg_type_number_t task_count = MACH_TASK_BASIC_INFO_COUNT; +			if (task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t) &taskinfo, &task_count) != KERN_SUCCESS)  			{ -			LL_WARNS("LLMemoryInfo") << "Unable to collect task information" << LL_ENDL; -				} -				else -				{ -			stats.add("Basic suspend count",					taskinfo.suspend_count); -			stats.add("Basic virtual memory KB",				taskinfo.virtual_size / 1024); -			stats.add("Basic resident memory KB",				taskinfo.resident_size / 1024); -			stats.add("Basic new thread policy",				taskinfo.policy); -		} +				LL_WARNS("LLMemoryInfo") << "Unable to collect task information" << LL_ENDL; +			} +			else +			{ +				stats.add("Basic virtual memory KB", taskinfo.virtual_size / 1024); +				stats.add("Basic resident memory KB", taskinfo.resident_size / 1024); +				stats.add("Basic max resident memory KB", taskinfo.resident_size_max / 1024); +				stats.add("Basic new thread policy", taskinfo.policy); +				stats.add("Basic suspend count", taskinfo.suspend_count); +			}  	}  #elif LL_SOLARIS diff --git a/indra/llcommon/lltrace.h b/indra/llcommon/lltrace.h index 5f1289dad8..79ff55b739 100644 --- a/indra/llcommon/lltrace.h +++ b/indra/llcommon/lltrace.h @@ -57,7 +57,7 @@ class StatBase  {  public:  	StatBase(const char* name, const char* description); -	virtual ~StatBase() {}; +	virtual ~StatBase() LLINSTANCETRACKER_DTOR_NOEXCEPT	{}  	virtual const char* getUnitLabel() const;  	const std::string& getName() const { return mName; } diff --git a/indra/llcommon/tests/llsdserialize_test.cpp b/indra/llcommon/tests/llsdserialize_test.cpp index 81b930e1e2..8836230640 100644 --- a/indra/llcommon/tests/llsdserialize_test.cpp +++ b/indra/llcommon/tests/llsdserialize_test.cpp @@ -1553,7 +1553,7 @@ namespace tut              params.executable = PYTHON;              params.args.add(scriptfile.getName());              LLProcessPtr py(LLProcess::create(params)); -            ensure(STRINGIZE("Couldn't launch " << desc << " script"), py); +            ensure(STRINGIZE("Couldn't launch " << desc << " script"), bool(py));              // Implementing timeout would mean messing with alarm() and              // catching SIGALRM... later maybe...              int status(0); diff --git a/indra/llimage/llimagetga.cpp b/indra/llimage/llimagetga.cpp index 5ad7658ec1..7c75aa1e2a 100644 --- a/indra/llimage/llimagetga.cpp +++ b/indra/llimage/llimagetga.cpp @@ -811,7 +811,7 @@ bool LLImageTGA::decodeTruecolorRle32( LLImageRaw* raw_image, bool &alpha_opaque  			}  			src += 4; -			register U32 value = rgba; +			U32 value = rgba;  			do  			{  				*dst_pixels = value; diff --git a/indra/llmath/v4color.cpp b/indra/llmath/v4color.cpp index 79a64b24f2..a8768bda35 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 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..8f353ead5a 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 LLColor4U() const;  		// Basic color values.  		static LLColor4 red; diff --git a/indra/llmath/v4coloru.h b/indra/llmath/v4coloru.h index 704ce852d9..0f2eff3d14 100644 --- a/indra/llmath/v4coloru.h +++ b/indra/llmath/v4coloru.h @@ -120,7 +120,7 @@ public:  	static BOOL parseColor4U(const std::string& buf, LLColor4U* value);  	// conversion -	operator const LLColor4() const +	operator LLColor4() const  	{  		return LLColor4(*this);  	} diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm index 22f3339cf1..c8c086d705 100644 --- a/indra/llwindow/llopenglview-objc.mm +++ b/indra/llwindow/llopenglview-objc.mm @@ -232,8 +232,8 @@ attributedStringInfo getSegments(NSAttributedString *str)  		NSOpenGLPFADoubleBuffer,  		NSOpenGLPFAClosestPolicy,  		NSOpenGLPFAAccelerated, -		NSOpenGLPFASampleBuffers, (samples > 0 ? 1 : 0), -		NSOpenGLPFASamples, samples, +		NSOpenGLPFASampleBuffers, static_cast<NSOpenGLPixelFormatAttribute>(samples > 0 ? 1 : 0), +		NSOpenGLPFASamples, static_cast<NSOpenGLPixelFormatAttribute>(samples),  		NSOpenGLPFAStencilSize, 8,  		NSOpenGLPFADepthSize, 24,  		NSOpenGLPFAAlphaSize, 8, @@ -370,8 +370,8 @@ attributedStringInfo getSegments(NSAttributedString *str)  - (void)mouseMoved:(NSEvent *)theEvent  {  	float mouseDeltas[2] = { -		[theEvent deltaX], -		[theEvent deltaY] +		float([theEvent deltaX]), +		float([theEvent deltaY])  	};  	callDeltaUpdate(mouseDeltas, 0); @@ -391,8 +391,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] +		float([theEvent deltaX]), +		float([theEvent deltaY])  	};  	callDeltaUpdate(mouseDeltas, 0); @@ -592,13 +592,13 @@ attributedStringInfo getSegments(NSAttributedString *str)      if (mMarkedTextAllowed)      {          unsigned int selected[2] = { -            selectedRange.location, -            selectedRange.length +            unsigned(selectedRange.location), +            unsigned(selectedRange.length)          };          unsigned int replacement[2] = { -            replacementRange.location, -            replacementRange.length +            unsigned(replacementRange.location), +            unsigned(replacementRange.length)          };          int string_length = [aString length]; diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index d28a7f177f..5f35a0f0f9 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -544,7 +544,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] = {float(coord.mX), float(coord.mY), 0, 0};  		convertRectToScreen(gWindowImplementation->getWindow(), c); @@ -899,7 +899,7 @@ BOOL LLWindowMacOSX::setPosition(const LLCoordScreen position)  {  	if(mWindow)  	{ -		float pos[2] = {position.mX, position.mY}; +		float pos[2] = {float(position.mX), float(position.mY)};  		setWindowPos(mWindow, pos);  	} diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm index 8188c6c3f9..aebae4c434 100644 --- a/indra/newview/llappdelegate-objc.mm +++ b/indra/newview/llappdelegate-objc.mm @@ -97,7 +97,7 @@  	callWindowUnhide();  } -- (NSApplicationDelegateReply) applicationShouldTerminate:(NSApplication *)sender +- (NSApplicationTerminateReply) applicationShouldTerminate:(NSApplication *)sender  {  	// run one frame to assess state  	if (!pumpMainLoop()) diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp index bb3bcf2886..d472f8926b 100644 --- a/indra/newview/llappviewermacosx.cpp +++ b/indra/newview/llappviewermacosx.cpp @@ -302,7 +302,8 @@ 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; +    LL_WARNS() << "about to launch mac-crash-logger" << pid_str.str() +               << " " << logdir << " " << appname << LL_ENDL;      launchApplication(&command_str, &args);  } diff --git a/indra/newview/llpanelexperiencelisteditor.cpp b/indra/newview/llpanelexperiencelisteditor.cpp index 32ec4930ab..0fdb9a57f3 100644 --- a/indra/newview/llpanelexperiencelisteditor.cpp +++ b/indra/newview/llpanelexperiencelisteditor.cpp @@ -39,6 +39,8 @@  #include "llagent.h"  #include "lltextbox.h"  #include "lltrans.h" +#include "llsdutil.h" +#include <boost/foreach.hpp>  static LLPanelInjector<LLPanelExperienceListEditor> t_panel_experience_list_editor("panel_experience_list_editor"); @@ -94,7 +96,12 @@ void LLPanelExperienceListEditor::addExperienceIds( const uuid_vec_t& experience  void LLPanelExperienceListEditor::setExperienceIds( const LLSD& experience_ids )  {  	mExperienceIds.clear(); -	mExperienceIds.insert(experience_ids.beginArray(), experience_ids.endArray()); +	BOOST_FOREACH(LLSD uuid, llsd::inArray(experience_ids)) +	{ +		// Using insert(range) doesn't work here because the conversion from +		// LLSD to LLUUID is ambiguous: have to specify asUUID() for each entry. +		mExperienceIds.insert(uuid.asUUID()); +	}  	onItems();  } diff --git a/indra/newview/llpresetsmanager.cpp b/indra/newview/llpresetsmanager.cpp index f40b3e0295..76d721ecdc 100644 --- a/indra/newview/llpresetsmanager.cpp +++ b/indra/newview/llpresetsmanager.cpp @@ -165,8 +165,8 @@ bool LLPresetsManager::savePreset(const std::string& subdirectory, std::string n  	}      else if(PRESETS_CAMERA == subdirectory)  	{ -		name_list = boost::assign::list_of -			("Placeholder"); +		name_list.clear(); +		name_list.push_back("Placeholder");  	}      else      { diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index b907783b1f..8ff735a8c1 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -307,7 +307,8 @@ U32Bytes				gTotalWorldData,  U32								gSimPingCount = 0;  U32Bits				gObjectData;  F32Milliseconds		gAvgSimPing(0.f); -U32Bytes			gTotalTextureBytesPerBoostLevel[LLViewerTexture::MAX_GL_IMAGE_CATEGORY] = {U32Bytes(0)}; +// rely on default initialization +U32Bytes			gTotalTextureBytesPerBoostLevel[LLViewerTexture::MAX_GL_IMAGE_CATEGORY];  extern U32  gVisCompared;  extern U32  gVisTested; | 
