diff options
| -rw-r--r-- | indra/llcommon/llsd.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/llsd.h | 26 | ||||
| -rw-r--r-- | indra/llcommon/lltimer.cpp | 11 | ||||
| -rw-r--r-- | indra/llinventory/llsettingssky.cpp | 119 | ||||
| -rw-r--r-- | indra/llinventory/llsettingswater.cpp | 36 | ||||
| -rw-r--r-- | indra/llui/llnotifications.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llfloaterlandholdings.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/llsettingsvo.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 2 | 
10 files changed, 136 insertions, 141 deletions
| diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp index a645e624f8..590915e9d2 100644 --- a/indra/llcommon/llsd.cpp +++ b/indra/llcommon/llsd.cpp @@ -622,7 +622,7 @@ namespace  		if (index >= mData.size())  		{ -			mData.resize(i + 1); +			mData.resize(index + 1);  		}  		return mData[index]; diff --git a/indra/llcommon/llsd.h b/indra/llcommon/llsd.h index c1406cf73f..92a1fc58a5 100644 --- a/indra/llcommon/llsd.h +++ b/indra/llcommon/llsd.h @@ -30,7 +30,6 @@  #include <map>  #include <string>  #include <vector> -#include <type_traits>  #include "stdtypes.h" @@ -216,21 +215,15 @@ public:  		void assign(const Date&);  		void assign(const URI&);  		void assign(const Binary&); - -		// support assignment from size_t et al. -		template <typename VALUE, -				  typename std::enable_if<std::is_integral<VALUE>::value && -										  ! std::is_same<VALUE, Boolean>::value, -										  bool>::type = true> -		void assign(VALUE v) { assign(Integer(narrow(v))); } -		// support assignment from F32 et al. -		template <typename VALUE, -				  typename std::enable_if<std::is_floating_point<VALUE>::value, -										  bool>::type = true> -		void assign(VALUE v) { assign(Real(narrow(v))); } - -		template <typename VALUE> -		LLSD& operator=(VALUE v)			{ assign(v); return *this; } +		 +		LLSD& operator=(Boolean v)			{ assign(v); return *this; } +		LLSD& operator=(Integer v)			{ assign(v); return *this; } +		LLSD& operator=(Real v)				{ assign(v); return *this; } +		LLSD& operator=(const String& v)	{ assign(v); return *this; } +		LLSD& operator=(const UUID& v)		{ assign(v); return *this; } +		LLSD& operator=(const Date& v)		{ assign(v); return *this; } +		LLSD& operator=(const URI& v)		{ assign(v); return *this; } +		LLSD& operator=(const Binary& v)	{ assign(v); return *this; }  	//@}  	/** @@ -292,6 +285,7 @@ public:  	//@{  		LLSD(const char*);  		void assign(const char*); +		LLSD& operator=(const char* v) { assign(v); return *this; }  	//@}  	/** @name Map Values */ diff --git a/indra/llcommon/lltimer.cpp b/indra/llcommon/lltimer.cpp index 74ec62d347..58bedacf43 100644 --- a/indra/llcommon/lltimer.cpp +++ b/indra/llcommon/lltimer.cpp @@ -121,9 +121,14 @@ U32 micro_sleep(U64 us, U32 max_yields)      U64 start = get_clock_count();      // This is kernel dependent.  Currently, our kernel generates software clock      // interrupts at 250 Hz (every 4,000 microseconds). -    const U64 KERNEL_SLEEP_INTERVAL_US = 4000; - -    auto num_sleep_intervals = (us - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US; +    const S64 KERNEL_SLEEP_INTERVAL_US = 4000; + +    // Use signed arithmetic to discover whether a sleep is even necessary. If +    // either 'us' or KERNEL_SLEEP_INTERVAL_US is unsigned, the compiler +    // promotes the difference to unsigned. If 'us' is less than half +    // KERNEL_SLEEP_INTERVAL_US, the unsigned difference will be hugely +    // positive, resulting in a crazy long wait. +    auto num_sleep_intervals = (S64(us) - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US;      if (num_sleep_intervals > 0)      {          U64 sleep_time = (num_sleep_intervals * KERNEL_SLEEP_INTERVAL_US) - (KERNEL_SLEEP_INTERVAL_US >> 1); diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index 83a92f08d0..a129f0a6f0 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -152,24 +152,24 @@ LLSettingsSky::validation_list_t legacyHazeValidationList()      {          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_AMBIENT,             false,  LLSD::TypeArray,               boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(3.0f, 3.0f, 3.0f, "*"))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_BLUE_DENSITY,        false,  LLSD::TypeArray,               boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(3.0f, 3.0f, 3.0f, "*"))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_BLUE_HORIZON,        false,  LLSD::TypeArray,               boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(3.0f, 3.0f, 3.0f, "*"))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_HAZE_DENSITY,        false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(5.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 5.0f))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_HAZE_HORIZON,        false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(5.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 5.0f))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_MULTIPLIER,  false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0001f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0001f, 2.0f))));          legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DISTANCE_MULTIPLIER, false,  LLSD::TypeReal, -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0001f)(1000.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0001f, 1000.0f))));      }      return legacyHazeValidation;  } @@ -180,19 +180,19 @@ LLSettingsSky::validation_list_t rayleighValidationList()      if (rayleighValidation.empty())      {          rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH,      false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f))));          rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM,   false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f))));          rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));      }      return rayleighValidation;  } @@ -203,19 +203,19 @@ LLSettingsSky::validation_list_t absorptionValidationList()      if (absorptionValidation.empty())      {          absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH,      false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f))));          absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM,   false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f))));          absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));      }      return absorptionValidation;  } @@ -226,22 +226,22 @@ LLSettingsSky::validation_list_t mieValidationList()      if (mieValidation.empty())      {          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH,      false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f))));          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM,   false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f))));          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f))));          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_MIE_ANISOTROPY_FACTOR, false,  LLSD::TypeReal,   -            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));      }      return mieValidation;  } @@ -546,89 +546,86 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()      static validation_list_t validation;      if (validation.empty()) -    {   // Note the use of LLSD(LLSDArray()()()...) This is due to an issue with the  -        // copy constructor for LLSDArray.  Directly binding the LLSDArray as  -        // a parameter without first wrapping it in a pure LLSD object will result  -        // in deeply nested arrays like this [[[[[[[[[[v1,v2,v3]]]]]]]]]] +    {          validation.push_back(Validator(SETTING_BLOOM_TEXTUREID,     true,  LLSD::TypeUUID));          validation.push_back(Validator(SETTING_RAINBOW_TEXTUREID,   false,  LLSD::TypeUUID));          validation.push_back(Validator(SETTING_HALO_TEXTUREID,      false,  LLSD::TypeUUID));          validation.push_back(Validator(SETTING_CLOUD_COLOR,         true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(1.0f)(1.0f)(1.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(1.0f, 1.0f, 1.0f, "*"))));          validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY1,  true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(1.0f)(1.0f)(3.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(1.0f, 1.0f, 3.0f, "*"))));          validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY2,  true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(1.0f)(1.0f)(1.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(1.0f, 1.0f, 1.0f, "*"))));          validation.push_back(Validator(SETTING_CLOUD_SCALE,         true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.001f)(3.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.001f, 3.0f))));          validation.push_back(Validator(SETTING_CLOUD_SCROLL_RATE,   true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(-50.0f)(-50.0f)), -                LLSD(LLSDArray(50.0f)(50.0f))))); +                llsd::array(-50.0f, -50.0f), +                llsd::array(50.0f, 50.0f))));          validation.push_back(Validator(SETTING_CLOUD_SHADOW,        true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_CLOUD_TEXTUREID,     false, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_CLOUD_VARIANCE,      false,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_DOME_OFFSET,         false, LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_DOME_RADIUS,         false, LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(2000.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 2000.0f))));          validation.push_back(Validator(SETTING_GAMMA,               true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(20.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 20.0f))));          validation.push_back(Validator(SETTING_GLOW,                true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.2f)("*")(-10.0f)("*")), -                LLSD(LLSDArray(40.0f)("*")(10.0f)("*"))))); +                llsd::array(0.2f, "*", -10.0f, "*"), +                llsd::array(40.0f, "*", 10.0f, "*"))));          validation.push_back(Validator(SETTING_MAX_Y,               true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(10000.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 10000.0f))));          validation.push_back(Validator(SETTING_MOON_ROTATION,       true,  LLSD::TypeArray, &Validator::verifyQuaternionNormal));          validation.push_back(Validator(SETTING_MOON_SCALE,          false, LLSD::TypeReal, -                boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0))); +                boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.25f, 20.0f)), LLSD::Real(1.0)));          validation.push_back(Validator(SETTING_MOON_TEXTUREID,      false, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_MOON_BRIGHTNESS,     false,  LLSD::TypeReal,  -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_STAR_BRIGHTNESS,     true,  LLSD::TypeReal,  -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(500.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 500.0f))));          validation.push_back(Validator(SETTING_SUNLIGHT_COLOR,      true,  LLSD::TypeArray,               boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), -                LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); +                llsd::array(0.0f, 0.0f, 0.0f, "*"), +                llsd::array(3.0f, 3.0f, 3.0f, "*"))));          validation.push_back(Validator(SETTING_SUN_ROTATION,        true,  LLSD::TypeArray, &Validator::verifyQuaternionNormal));          validation.push_back(Validator(SETTING_SUN_SCALE,           false, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.25f, 20.0f)), LLSD::Real(1.0)));          validation.push_back(Validator(SETTING_SUN_TEXTUREID, false, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_PLANET_RADIUS,       true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f))));          validation.push_back(Validator(SETTING_SKY_BOTTOM_RADIUS,   true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f))));          validation.push_back(Validator(SETTING_SKY_TOP_RADIUS,       true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f))));          validation.push_back(Validator(SETTING_SUN_ARC_RADIANS,      true,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(0.1f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 0.1f))));          validation.push_back(Validator(SETTING_SKY_MOISTURE_LEVEL,      false,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_SKY_DROPLET_RADIUS,      false,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(5.0f)(1000.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(5.0f, 1000.0f))));          validation.push_back(Validator(SETTING_SKY_ICE_LEVEL,      false,  LLSD::TypeReal,   -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_RAYLEIGH_CONFIG, true, LLSD::TypeArray, &validateRayleighLayers));          validation.push_back(Validator(SETTING_ABSORPTION_CONFIG, true, LLSD::TypeArray, &validateAbsorptionLayers)); @@ -719,7 +716,7 @@ LLSD LLSettingsSky::defaults(const LLSettingsBase::TrackPosition& position)          dfltsetting[SETTING_CLOUD_POS_DENSITY1] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue();          dfltsetting[SETTING_CLOUD_POS_DENSITY2] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue();          dfltsetting[SETTING_CLOUD_SCALE]        = LLSD::Real(0.4199); -        dfltsetting[SETTING_CLOUD_SCROLL_RATE]  = LLSDArray(0.0f)(0.0f); +        dfltsetting[SETTING_CLOUD_SCROLL_RATE]  = llsd::array(0.0f, 0.0f);          dfltsetting[SETTING_CLOUD_SHADOW]       = LLSD::Real(0.2699);          dfltsetting[SETTING_CLOUD_VARIANCE]     = LLSD::Real(0.0); diff --git a/indra/llinventory/llsettingswater.cpp b/indra/llinventory/llsettingswater.cpp index 90f99e8198..f19beb5be5 100644 --- a/indra/llinventory/llsettingswater.cpp +++ b/indra/llinventory/llsettingswater.cpp @@ -222,42 +222,38 @@ LLSettingsWater::validation_list_t LLSettingsWater::validationList()      static validation_list_t validation;      if (validation.empty()) -    {   // Note the use of LLSD(LLSDArray()()()...) This is due to an issue with the  -        // copy constructor for LLSDArray.  Directly binding the LLSDArray as  -        // a parameter without first wrapping it in a pure LLSD object will result  -        // in deeply nested arrays like this [[[[[[[[[[v1,v2,v3]]]]]]]]]] - +    {          validation.push_back(Validator(SETTING_BLUR_MULTIPLIER, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-0.5f)(0.5f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(-0.5f, 0.5f))));          validation.push_back(Validator(SETTING_FOG_COLOR, true, LLSD::TypeArray,              boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)(1.0f)), -                LLSD(LLSDArray(1.0f)(1.0f)(1.0f)(1.0f))))); +                llsd::array(0.0f, 0.0f, 0.0f, 1.0f), +                llsd::array(1.0f, 1.0f, 1.0f, 1.0f))));          validation.push_back(Validator(SETTING_FOG_DENSITY, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-10.0f)(10.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(-10.0f, 10.0f))));          validation.push_back(Validator(SETTING_FOG_MOD, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(20.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 20.0f))));          validation.push_back(Validator(SETTING_FRESNEL_OFFSET, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_FRESNEL_SCALE, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f))));          validation.push_back(Validator(SETTING_NORMAL_MAP, true, LLSD::TypeUUID));          validation.push_back(Validator(SETTING_NORMAL_SCALE, true, LLSD::TypeArray,              boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(0.0f)(0.0f)(0.0f)), -                LLSD(LLSDArray(10.0f)(10.0f)(10.0f))))); +                llsd::array(0.0f, 0.0f, 0.0f), +                llsd::array(10.0f, 10.0f, 10.0f))));          validation.push_back(Validator(SETTING_SCALE_ABOVE, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(3.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 3.0f))));          validation.push_back(Validator(SETTING_SCALE_BELOW, true, LLSD::TypeReal, -            boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(3.0f))))); +            boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 3.0f))));          validation.push_back(Validator(SETTING_WAVE1_DIR, true, LLSD::TypeArray,              boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(-20.0f)(-20.0f)), -                LLSD(LLSDArray(20.0f)(20.0f))))); +                llsd::array(-20.0f, -20.0f), +                llsd::array(20.0f, 20.0f))));          validation.push_back(Validator(SETTING_WAVE2_DIR, true, LLSD::TypeArray,              boost::bind(&Validator::verifyVectorMinMax, _1, _2, -                LLSD(LLSDArray(-20.0f)(-20.0f)), -                LLSD(LLSDArray(20.0f)(20.0f))))); +                llsd::array(-20.0f, -20.0f), +                llsd::array(20.0f, 20.0f))));      }      return validation; diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 7c381161c9..d736aa6634 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -337,7 +337,7 @@ void LLNotificationForm::addElement(const std::string& type, const std::string&  	element["name"] = name;  	element["text"] = name;  	element["value"] = value; -	element["index"] = mFormData.size(); +	element["index"] = LLSD::Integer(mFormData.size());  	element["enabled"] = enabled;  	mFormData.append(element);  } diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 8af5fdfc93..a4b4caddf1 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3194,15 +3194,16 @@ LLSD LLAppViewer::getViewerInfo() const  	// LLFloaterAbout.  	LLSD info;  	auto& versionInfo(LLVersionInfo::instance()); -	info["VIEWER_VERSION"] = LLSDArray(versionInfo.getMajor())(versionInfo.getMinor())(versionInfo.getPatch())(versionInfo.getBuild()); +	info["VIEWER_VERSION"] = llsd::array(versionInfo.getMajor(), versionInfo.getMinor(), +										 versionInfo.getPatch(), versionInfo.getBuild());  	info["VIEWER_VERSION_STR"] = versionInfo.getVersion();  	info["CHANNEL"] = versionInfo.getChannel(); -    info["ADDRESS_SIZE"] = ADDRESS_SIZE; -    std::string build_config = versionInfo.getBuildConfig(); -    if (build_config != "Release") -    { -        info["BUILD_CONFIG"] = build_config; -    } +	info["ADDRESS_SIZE"] = ADDRESS_SIZE; +	std::string build_config = versionInfo.getBuildConfig(); +	if (build_config != "Release") +	{ +		info["BUILD_CONFIG"] = build_config; +	}  	// return a URL to the release notes for this viewer, such as:  	// https://releasenotes.secondlife.com/viewer/2.1.0.123456.html diff --git a/indra/newview/llfloaterlandholdings.cpp b/indra/newview/llfloaterlandholdings.cpp index 8633fe4e5e..a3222d622f 100644 --- a/indra/newview/llfloaterlandholdings.cpp +++ b/indra/newview/llfloaterlandholdings.cpp @@ -39,6 +39,7 @@  #include "llfloaterworldmap.h"  #include "llproductinforequest.h"  #include "llscrolllistctrl.h" +#include "llsdutil.h"  #include "llstatusbar.h"  #include "lltextbox.h"  #include "llscrolllistctrl.h" @@ -79,24 +80,25 @@ BOOL LLFloaterLandHoldings::postBuild()  	for(S32 i = 0; i < count; ++i)  	{  		LLUUID id(gAgent.mGroups.at(i).mID); - -		LLSD element; -		element["id"] = id; -		element["columns"][0]["column"] = "group"; -		element["columns"][0]["value"] = gAgent.mGroups.at(i).mName; -		element["columns"][0]["font"] = "SANSSERIF"; -  		LLUIString areastr = getString("area_string");  		areastr.setArg("[AREA]", llformat("%d", gAgent.mGroups.at(i).mContribution)); -		element["columns"][1]["column"] = "area"; -		element["columns"][1]["value"] = areastr; -		element["columns"][1]["font"] = "SANSSERIF"; -		grant_list->addElement(element); +		grant_list->addElement( +			llsd::map( +				"id", id, +				"columns", llsd::array( +					llsd::map( +						"column", "group", +						"value", gAgent.mGroups.at(i).mName, +						"font", "SANSSERIF"), +					llsd::map( +						"column", "area", +						"value", areastr, +						"font", "SANSSERIF"))));  	} -	 +  	center(); -	 +  	return TRUE;  } @@ -108,8 +110,8 @@ LLFloaterLandHoldings::~LLFloaterLandHoldings()  void LLFloaterLandHoldings::onOpen(const LLSD& key)  { -    LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list"); -    list->clearRows(); +	LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list"); +	list->clearRows();  	// query_id null is known to be us  	const LLUUID& query_id = LLUUID::null; diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index 7c762170a7..1930faa1a0 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -568,11 +568,11 @@ void LLSettingsVOSky::convertAtmosphericsToLegacy(LLSD& legacy, LLSD& settings)          legacy[SETTING_BLUE_DENSITY] = ensure_array_4(legacyhaze[SETTING_BLUE_DENSITY], 1.0);          legacy[SETTING_BLUE_HORIZON] = ensure_array_4(legacyhaze[SETTING_BLUE_HORIZON], 1.0); -        legacy[SETTING_DENSITY_MULTIPLIER] = LLSDArray(legacyhaze[SETTING_DENSITY_MULTIPLIER].asReal())(0.0f)(0.0f)(1.0f); -        legacy[SETTING_DISTANCE_MULTIPLIER] = LLSDArray(legacyhaze[SETTING_DISTANCE_MULTIPLIER].asReal())(0.0f)(0.0f)(1.0f); +        legacy[SETTING_DENSITY_MULTIPLIER]  = llsd::array(legacyhaze[SETTING_DENSITY_MULTIPLIER].asReal(), 0.0f, 0.0f, 1.0f); +        legacy[SETTING_DISTANCE_MULTIPLIER] = llsd::array(legacyhaze[SETTING_DISTANCE_MULTIPLIER].asReal(), 0.0f, 0.0f, 1.0f); -        legacy[SETTING_HAZE_DENSITY]        = LLSDArray(legacyhaze[SETTING_HAZE_DENSITY])(0.0f)(0.0f)(1.0f); -        legacy[SETTING_HAZE_HORIZON]        = LLSDArray(legacyhaze[SETTING_HAZE_HORIZON])(0.0f)(0.0f)(1.0f); +        legacy[SETTING_HAZE_DENSITY]        = llsd::array(legacyhaze[SETTING_HAZE_DENSITY], 0.0f, 0.0f, 1.0f); +        legacy[SETTING_HAZE_HORIZON]        = llsd::array(legacyhaze[SETTING_HAZE_HORIZON], 0.0f, 0.0f, 1.0f);      }  } @@ -586,15 +586,15 @@ LLSD LLSettingsVOSky::convertToLegacy(const LLSettingsSky::ptr_t &psky, bool isA      legacy[SETTING_CLOUD_COLOR] = ensure_array_4(settings[SETTING_CLOUD_COLOR], 1.0);      legacy[SETTING_CLOUD_POS_DENSITY1] = ensure_array_4(settings[SETTING_CLOUD_POS_DENSITY1], 1.0);      legacy[SETTING_CLOUD_POS_DENSITY2] = ensure_array_4(settings[SETTING_CLOUD_POS_DENSITY2], 1.0); -    legacy[SETTING_CLOUD_SCALE] = LLSDArray(settings[SETTING_CLOUD_SCALE])(LLSD::Real(0.0))(LLSD::Real(0.0))(LLSD::Real(1.0));        +    legacy[SETTING_CLOUD_SCALE] = llsd::array(settings[SETTING_CLOUD_SCALE], LLSD::Real(0.0), LLSD::Real(0.0), LLSD::Real(1.0));      legacy[SETTING_CLOUD_SCROLL_RATE] = settings[SETTING_CLOUD_SCROLL_RATE]; -    legacy[SETTING_LEGACY_ENABLE_CLOUD_SCROLL] = LLSDArray(LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][0].asReal()))) -        (LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][1].asReal())));      -    legacy[SETTING_CLOUD_SHADOW] = LLSDArray(settings[SETTING_CLOUD_SHADOW].asReal())(0.0f)(0.0f)(1.0f);     -    legacy[SETTING_GAMMA] = LLSDArray(settings[SETTING_GAMMA])(0.0f)(0.0f)(1.0f); +    legacy[SETTING_LEGACY_ENABLE_CLOUD_SCROLL] = llsd::array(LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][0].asReal())), +        LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][1].asReal())));      +    legacy[SETTING_CLOUD_SHADOW] = llsd::array(settings[SETTING_CLOUD_SHADOW].asReal(), 0.0f, 0.0f, 1.0f);     +    legacy[SETTING_GAMMA] = llsd::array(settings[SETTING_GAMMA], 0.0f, 0.0f, 1.0f);      legacy[SETTING_GLOW] = ensure_array_4(settings[SETTING_GLOW], 1.0);      legacy[SETTING_LIGHT_NORMAL] = ensure_array_4(psky->getLightDirection().getValue(), 0.0f); -    legacy[SETTING_MAX_Y] = LLSDArray(settings[SETTING_MAX_Y])(0.0f)(0.0f)(1.0f); +    legacy[SETTING_MAX_Y] = llsd::array(settings[SETTING_MAX_Y], 0.0f, 0.0f, 1.0f);      legacy[SETTING_STAR_BRIGHTNESS] = settings[SETTING_STAR_BRIGHTNESS].asReal() / 250.0f; // convert from 0-500 -> 0-2 ala pre-FS-compat changes      legacy[SETTING_SUNLIGHT_COLOR] = ensure_array_4(settings[SETTING_SUNLIGHT_COLOR], 1.0f); @@ -1062,7 +1062,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n      newsettings[SETTING_NAME] = name; -    LLSD watertrack = LLSDArray( +    LLSD watertrack = llsd::array(          LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f))          (SETTING_KEYNAME, "water:Default")); @@ -1077,7 +1077,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n          skytrack.append(entry);      } -    newsettings[SETTING_TRACKS] = LLSDArray(watertrack)(skytrack); +    newsettings[SETTING_TRACKS] = llsd::array(watertrack, skytrack);      LLSD frames(LLSD::emptyMap()); @@ -1165,7 +1165,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID ®io      watersettings[SETTING_NAME] = watername;      frames[watername] = watersettings; -    LLSD watertrack = LLSDArray( +    LLSD watertrack = llsd::array(              LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f))              (SETTING_KEYNAME, watername)); @@ -1179,7 +1179,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID ®io      LLSD newsettings = LLSDMap          ( SETTING_NAME, "Region (legacy)" ) -        ( SETTING_TRACKS, LLSDArray(watertrack)(skytrack)) +        ( SETTING_TRACKS, llsd::array(watertrack, skytrack))          ( SETTING_FRAMES, frames )          ( SETTING_TYPE, "daycycle" ); @@ -1360,7 +1360,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday)          skys[name.str()] = std::static_pointer_cast<LLSettingsSky>((*it).second);          F32 frame = ((tracksky.size() == 1) && (it == tracksky.begin())) ? -1.0f : (*it).first; -        llsdcycle.append( LLSDArray(LLSD::Real(frame))(name.str()) ); +        llsdcycle.append( llsd::array(LLSD::Real(frame), name.str()) );      }      LLSD llsdskylist(LLSD::emptyMap()); @@ -1373,7 +1373,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday)          llsdskylist[(*its).first] = llsdsky;      } -    return LLSDArray(LLSD::emptyMap())(llsdcycle)(llsdskylist)(llsdwater); +    return llsd::array(LLSD::emptyMap(), llsdcycle, llsdskylist, llsdwater);  }  LLSettingsSkyPtr_t  LLSettingsVODay::getDefaultSky() const diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index d97ed61e11..5266db5b38 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -6284,7 +6284,7 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response)  		// More than OFFER_RECIPIENT_LIMIT targets will overload the message  		// producing an llerror.  		LLSD args; -		args["OFFERS"] = notification["payload"]["ids"].size(); +		args["OFFERS"] = LLSD::Integer(notification["payload"]["ids"].size());  		args["LIMIT"] = static_cast<int>(OFFER_RECIPIENT_LIMIT);  		LLNotificationsUtil::add("TooManyTeleportOffers", args);  		return false; | 
