From fcd37f3a45fe6f4cbee038a809892a8eb1280a8d Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Mon, 1 Aug 2011 19:55:57 +0200 Subject: [PATCH] Linuxy fixes --- indra/llmath/llcamera.cpp | 2 +- indra/llmath/llcamera.h | 2 +- indra/llmath/llplane.h | 2 +- indra/newview/app_settings/settings.xml | 6 +- indra/newview/llfloaterteleporthistory.cpp | 14 +- indra/newview/llfloaterteleporthistory.h | 2 +- indra/newview/llhudicon.cpp | 3 +- indra/newview/llinventorybridge.cpp | 6 +- indra/newview/lltexturefetch.cpp | 8 +- indra/newview/lltooldraganddrop.cpp | 4 +- indra/newview/llviewercamera.cpp | 1 - indra/newview/llviewercamera.h | 5 - indra/newview/llviewerinventory.cpp | 4 +- indra/newview/rlvfloaterbehaviour.cpp | 2 +- indra/newview/tests/llagentaccess_test.cpp | 158 +++++++++++---------- 15 files changed, 114 insertions(+), 105 deletions(-) diff --git a/indra/llmath/llcamera.cpp b/indra/llmath/llcamera.cpp index ba31254fb..7ab6cdd5f 100644 --- a/indra/llmath/llcamera.cpp +++ b/indra/llmath/llcamera.cpp @@ -92,7 +92,7 @@ F32 LLCamera::getMaxView() const // ---------------- LLCamera::setFoo() member functions ---------------- -void LLCamera::setUserClipPlane(LLPlane& plane) +void LLCamera::setUserClipPlane(const LLPlane& plane) { mPlaneCount = 7; mAgentPlanes[6] = plane; diff --git a/indra/llmath/llcamera.h b/indra/llmath/llcamera.h index 0e35ffd13..0459f797c 100644 --- a/indra/llmath/llcamera.h +++ b/indra/llmath/llcamera.h @@ -144,7 +144,7 @@ public: virtual ~LLCamera(); - void setUserClipPlane(LLPlane& plane); + void setUserClipPlane(const LLPlane& plane); void disableUserClipPlane(); virtual void setView(F32 vertical_fov_rads); void setViewHeightInPixels(S32 height); diff --git a/indra/llmath/llplane.h b/indra/llmath/llplane.h index 32590c195..a18f63a0d 100644 --- a/indra/llmath/llplane.h +++ b/indra/llmath/llplane.h @@ -93,7 +93,7 @@ public: inline void getVector3(LLVector3& vec) const { vec.set(mV[0], mV[1], mV[2]); } // Retrieve the mask indicating which of the x, y, or z axis are greater or equal to zero. - inline U8 calcPlaneMask() + inline U8 calcPlaneMask() const { return mV.greaterEqual(LLVector4a::getZero()).getGatheredBits() & LLVector4Logical::MASK_XYZ; } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 58fa0da4e..0f14e3e27 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -28,7 +28,7 @@ Persist 1 Type - S32 + U32 Value 30 @@ -39,7 +39,7 @@ Persist 1 Type - S32 + U32 Value 32 @@ -50,7 +50,7 @@ Persist 1 Type - S32 + U32 Value 2 diff --git a/indra/newview/llfloaterteleporthistory.cpp b/indra/newview/llfloaterteleporthistory.cpp index f32fa55be..9547bf0b6 100644 --- a/indra/newview/llfloaterteleporthistory.cpp +++ b/indra/newview/llfloaterteleporthistory.cpp @@ -34,6 +34,8 @@ #include "linden_common.h" +#include + //MK #include "llworld.h" #include "lleventpoll.h" @@ -238,6 +240,13 @@ void LLFloaterTeleportHistory::loadFile(const std::string &file_name) } } } + +struct SortByAge{ + inline bool operator() (LLScrollListItem* const i,LLScrollListItem* const j) const { + return (i->getValue().asInteger()>j->getValue().asInteger()); + } +}; + //static void LLFloaterTeleportHistory::saveFile(const std::string &file_name) { @@ -265,10 +274,7 @@ void LLFloaterTeleportHistory::saveFile(const std::string &file_name) if (pScrollList) { std::vector data_list = pScrollList->getAllData(); - struct SortByAge { - bool operator() (LLScrollListItem* i,LLScrollListItem* j) { return (i->getValue().asInteger()>j->getValue().asInteger());} - } sorter; - std::sort(data_list.begin(),data_list.end(),sorter);//Re-sort. Column sorting may have mucked the list up. Newer entries in front. + std::sort(data_list.begin(),data_list.end(),SortByAge());//Re-sort. Column sorting may have mucked the list up. Newer entries in front. for (std::vector::iterator itr = data_list.begin(); itr != data_list.end(); ++itr) { //Pack into LLSD mimicing one passed to addElement diff --git a/indra/newview/llfloaterteleporthistory.h b/indra/newview/llfloaterteleporthistory.h index 8b79f2510..7778de60d 100644 --- a/indra/newview/llfloaterteleporthistory.h +++ b/indra/newview/llfloaterteleporthistory.h @@ -43,7 +43,7 @@ #include "llfloater.h" #include "llscrolllistctrl.h" -class LLFloaterTeleportHistory : public LLFloater, public LLUISingleton> +class LLFloaterTeleportHistory : public LLFloater, public LLUISingleton > { public: LLFloaterTeleportHistory(const LLSD& seed); diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp index 0a7109b7c..3e38abe4c 100644 --- a/indra/newview/llhudicon.cpp +++ b/indra/newview/llhudicon.cpp @@ -73,6 +73,7 @@ LLHUDIcon::LLHUDIcon(const U8 type) : mScale(0.1f), mHidden(FALSE) { + llassert(this); sIconInstances.push_back(this); } @@ -333,7 +334,7 @@ LLHUDIcon* LLHUDIcon::lineSegmentIntersectAll(const LLVector3& start, const LLVe for(icon_it = sIconInstances.begin(); icon_it != sIconInstances.end(); ++icon_it) { LLHUDIcon* icon = *icon_it; - if (icon->lineSegmentIntersect(start, local_end, &position)) + if (icon && icon->lineSegmentIntersect(start, local_end, &position)) { ret = icon; if (intersection) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 8282bf8ff..8ae7f8523 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1653,7 +1653,7 @@ BOOL LLFolderBridge::isItemRemovable() return FALSE; } - if ( (LLAssetType::AT_NONE != category->getPreferredType()) && (LLFolderType::FT_OUTFIT != category->getPreferredType()) ) + if ( (LLFolderType::FT_NONE != category->getPreferredType()) && (LLFolderType::FT_OUTFIT != category->getPreferredType()) ) { return FALSE; } @@ -1666,7 +1666,7 @@ BOOL LLFolderBridge::isItemRemovable() for( i = 0; i < descendent_categories.count(); i++ ) { LLInventoryCategory* category = descendent_categories[i]; - if( LLAssetType::AT_NONE != category->getPreferredType() ) + if( LLFolderType::FT_NONE != category->getPreferredType() ) { return FALSE; } @@ -1792,7 +1792,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, const LLUUID& cat_id = inv_cat->getUUID(); const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH, false); const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id); - BOOL is_movable = (LLAssetType::AT_NONE == inv_cat->getPreferredType()); + BOOL is_movable = (LLFolderType::FT_NONE == inv_cat->getPreferredType()); if( is_movable ) { LLInventoryModel::cat_array_t descendent_categories; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 967d56b9d..d24bff56b 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -479,8 +479,8 @@ static bool sgConnectionThrottle() { LLMutexLock lock(&mutex); const U32 THROTTLE_TIMESTEPS_PER_SECOND = 10; static const LLCachedControl max_connections_per_second("HTTPRequestRate", 30); - S32 max_connections = max_connections_per_second/THROTTLE_TIMESTEPS_PER_SECOND; - const S32 timestep = USEC_PER_SEC/THROTTLE_TIMESTEPS_PER_SECOND; + U32 max_connections = max_connections_per_second/THROTTLE_TIMESTEPS_PER_SECOND; + const U32 timestep = USEC_PER_SEC/THROTTLE_TIMESTEPS_PER_SECOND; U64 now = LLTimer::getTotalTime(); std::deque timestamps; while(!timestamps.empty() && (timestamps[0]<=now-timestep)) { @@ -1274,8 +1274,8 @@ bool LLTextureFetchWorker::doWork(S32 param) //1, not openning too many file descriptors at the same time; //2, control the traffic of http so udp gets bandwidth. // - static const LLCachedControl max_http_requests("HTTPMaxRequests", 32); - static const LLCachedControl min_http_requests("HTTPMinRequests", 2); + static const LLCachedControl max_http_requests("HTTPMaxRequests", 32); + static const LLCachedControl min_http_requests("HTTPMinRequests", 2); if((mFetcher->getNumHTTPRequests() > max_http_requests) || ((mFetcher->getTextureBandwidth() > mFetcher->mMaxBandwidth) && (mFetcher->getNumHTTPRequests() > min_http_requests)) || diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index a21dc6a61..5da60b8b1 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -98,7 +98,7 @@ public: virtual bool operator()(LLInventoryCategory* cat, LLInventoryItem* item) { - if(cat && (cat->getPreferredType() == LLAssetType::AT_NONE)) + if(cat && (cat->getPreferredType() == LLFolderType::FT_NONE)) { return true; } @@ -115,7 +115,7 @@ public: LLInventoryItem* item) { if(item) return true; - if(cat && (cat->getPreferredType() == LLAssetType::AT_NONE)) + if(cat && (cat->getPreferredType() == LLFolderType::FT_NONE)) { return true; } diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index efdf9e1fe..aeb8a014b 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -32,7 +32,6 @@ #include "llviewerprecompiledheaders.h" -#define LLVIEWERCAMERA_CPP #include "llviewercamera.h" #include // for setprecision diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h index 85669f937..1fcda6362 100644 --- a/indra/newview/llviewercamera.h +++ b/indra/newview/llviewercamera.h @@ -51,11 +51,6 @@ const F32 OGL_TO_CFR_ROTATION[16] = { 0.f, 0.f, -1.f, 0.f, // -Z becomes X const BOOL FOR_SELECTION = TRUE; const BOOL NOT_FOR_SELECTION = FALSE; -// Build time optimization, generate this once in .cpp file -#ifndef LLVIEWERCAMERA_CPP -extern template class LLViewerCamera* LLSingleton::getInstance(); -#endif - class LLViewerCamera : public LLCamera, public LLSingleton { public: diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 63d3a4440..a1d157b7f 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -441,7 +441,7 @@ void LLViewerInventoryCategory::updateParentOnServer(BOOL restamp) const void LLViewerInventoryCategory::updateServer(BOOL is_new) const { // communicate that change with the server. - if ( (LLAssetType::AT_NONE != mPreferredType) && (LLFolderType::FT_OUTFIT != mPreferredType) ) + if ( (LLFolderType::FT_NONE != mPreferredType) && (LLFolderType::FT_OUTFIT != mPreferredType) ) { LLNotifications::instance().add("CannotModifyProtectedCategories"); return; @@ -465,7 +465,7 @@ void LLViewerInventoryCategory::removeFromServer( void ) llinfos << "Removing inventory category " << mUUID << " from server." << llendl; // communicate that change with the server. - if ( (LLAssetType::AT_NONE != mPreferredType) && (LLFolderType::FT_OUTFIT != mPreferredType) ) + if ( (LLFolderType::FT_NONE != mPreferredType) && (LLFolderType::FT_OUTFIT != mPreferredType) ) { LLNotifications::instance().add("CannotRemoveProtectedCategories"); return; diff --git a/indra/newview/rlvfloaterbehaviour.cpp b/indra/newview/rlvfloaterbehaviour.cpp index 808f35408..c8f33f5e0 100644 --- a/indra/newview/rlvfloaterbehaviour.cpp +++ b/indra/newview/rlvfloaterbehaviour.cpp @@ -165,7 +165,7 @@ void RlvFloaterBehaviour::changed(const RlvCommand& /*rlvCmd*/, bool /*fInternal void RlvFloaterBehaviour::onAvatarNameLookup(const LLUUID& uuid) { - std::map::const_iterator itLookup = m_PendingLookup.find(uuid); + std::map::iterator itLookup = m_PendingLookup.find(uuid); if (itLookup != m_PendingLookup.end()) { itLookup->second.disconnect(); diff --git a/indra/newview/tests/llagentaccess_test.cpp b/indra/newview/tests/llagentaccess_test.cpp index 750c9faa5..ad9561f53 100644 --- a/indra/newview/tests/llagentaccess_test.cpp +++ b/indra/newview/tests/llagentaccess_test.cpp @@ -2,83 +2,70 @@ * @file llagentaccess_test.cpp * @brief LLAgentAccess tests * - * $LicenseInfo:firstyear=2001&license=viewergpl$ - * - * Copyright (c) 2001-2009, Linden Research, Inc. - * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * Copyright (C) 2010, Linden Research, Inc. * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ + +#include "linden_common.h" #include "../test/lltut.h" #include "../llagentaccess.h" -#include "llcontrolgroupreader.h" +#include "llcontrol.h" #include "indra_constants.h" #include -class LLControlGroupReader_Test : public LLControlGroupReader -{ -public: - LLControlGroupReader_Test() : test_preferred_maturity(SIM_ACCESS_PG) {} - - virtual std::string getString(const std::string& name) const - { - return ""; - } - virtual std::string getText(const std::string& name) - { - return ""; - } - virtual BOOL getBOOL(const std::string& name) - { - return false; - } - virtual S32 getS32(const std::string& name) - { - return 0; - } - virtual F32 getF32(const std::string& name) - { - return 0; - } - virtual U32 getU32(const std::string& name) - { - return test_preferred_maturity; - } - - //-------------------------------------- - // Everything from here down is test code and not part of the interface - void setPreferredMaturity(U32 m) - { - test_preferred_maturity = m; - } -private: - U32 test_preferred_maturity; - -}; +//---------------------------------------------------------------------------- +// Implementation of enough of LLControlGroup to support the tests: +static U32 test_preferred_maturity = SIM_ACCESS_PG; + +LLControlGroup::LLControlGroup(const std::string& name) + : LLInstanceTracker(name) +{ +} + +LLControlGroup::~LLControlGroup() +{ +} + +// Implementation of just the LLControlGroup methods we requre +BOOL LLControlGroup::declareU32(const std::string& name, U32 initial_val, const std::string& comment, BOOL persist) +{ + test_preferred_maturity = initial_val; + return true; +} + +void LLControlGroup::setU32(const std::string& name, U32 val) +{ + test_preferred_maturity = val; +} + +U32 LLControlGroup::getU32(const std::string& name) +{ + return test_preferred_maturity; +} +//---------------------------------------------------------------------------- + namespace tut { struct agentaccess @@ -87,25 +74,26 @@ namespace tut typedef test_group agentaccess_t; typedef agentaccess_t::object agentaccess_object_t; - tut::agentaccess_t tut_agentaccess("agentaccess"); + tut::agentaccess_t tut_agentaccess("LLAgentAccess"); template<> template<> void agentaccess_object_t::test<1>() { - LLControlGroupReader_Test cgr; + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); LLAgentAccess aa(cgr); - cgr.setPreferredMaturity(SIM_ACCESS_PG); + cgr.setU32("PreferredMaturity", SIM_ACCESS_PG); ensure("1 prefersPG", aa.prefersPG()); ensure("1 prefersMature", !aa.prefersMature()); ensure("1 prefersAdult", !aa.prefersAdult()); - cgr.setPreferredMaturity(SIM_ACCESS_MATURE); + cgr.setU32("PreferredMaturity", SIM_ACCESS_MATURE); ensure("2 prefersPG", !aa.prefersPG()); ensure("2 prefersMature", aa.prefersMature()); ensure("2 prefersAdult", !aa.prefersAdult()); - cgr.setPreferredMaturity(SIM_ACCESS_ADULT); + cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT); ensure("3 prefersPG", !aa.prefersPG()); ensure("3 prefersMature", aa.prefersMature()); ensure("3 prefersAdult", aa.prefersAdult()); @@ -114,7 +102,8 @@ namespace tut template<> template<> void agentaccess_object_t::test<2>() { - LLControlGroupReader_Test cgr; + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); LLAgentAccess aa(cgr); // make sure default is PG @@ -163,7 +152,8 @@ namespace tut template<> template<> void agentaccess_object_t::test<3>() { - LLControlGroupReader_Test cgr; + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); LLAgentAccess aa(cgr); ensure("starts normal", !aa.isGodlike()); @@ -186,7 +176,8 @@ namespace tut template<> template<> void agentaccess_object_t::test<4>() { - LLControlGroupReader_Test cgr; + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); LLAgentAccess aa(cgr); ensure("1 pg to start", aa.wantsPGOnly()); @@ -211,12 +202,12 @@ namespace tut ensure("2 mature pref pg", !aa.canAccessMature()); ensure("3 mature pref pg", !aa.canAccessAdult()); - cgr.setPreferredMaturity(SIM_ACCESS_MATURE); + cgr.setU32("PreferredMaturity", SIM_ACCESS_MATURE); ensure("1 mature", !aa.wantsPGOnly()); ensure("2 mature", aa.canAccessMature()); ensure("3 mature", !aa.canAccessAdult()); - cgr.setPreferredMaturity(SIM_ACCESS_PG); + cgr.setU32("PreferredMaturity", SIM_ACCESS_PG); ensure("1 mature pref pg", aa.wantsPGOnly()); ensure("2 mature pref pg", !aa.canAccessMature()); ensure("3 mature pref pg", !aa.canAccessAdult()); @@ -226,14 +217,14 @@ namespace tut ensure("2 adult pref pg", !aa.canAccessMature()); ensure("3 adult pref pg", !aa.canAccessAdult()); - cgr.setPreferredMaturity(SIM_ACCESS_ADULT); + cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT); ensure("1 adult", !aa.wantsPGOnly()); ensure("2 adult", aa.canAccessMature()); ensure("3 adult", aa.canAccessAdult()); // make sure that even if pref is high, if access is low we block access // this shouldn't occur in real life but we want to be safe - cgr.setPreferredMaturity(SIM_ACCESS_ADULT); + cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT); aa.setMaturity('P'); ensure("1 pref adult, actual pg", aa.wantsPGOnly()); ensure("2 pref adult, actual pg", !aa.canAccessMature()); @@ -244,7 +235,8 @@ namespace tut template<> template<> void agentaccess_object_t::test<5>() { - LLControlGroupReader_Test cgr; + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); LLAgentAccess aa(cgr); ensure("1 transition starts false", !aa.isInTransition()); @@ -252,6 +244,22 @@ namespace tut ensure("2 transition now true", aa.isInTransition()); } + /* + template<> template<> + void agentaccess_object_t::test<6>() + { + LLControlGroup cgr("test"); + cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE); + LLAgentAccess aa(cgr); + + cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT); + aa.setMaturity('M'); + ensure("1 preferred maturity pegged to M when maturity is M", cgr.getU32("PreferredMaturity") == SIM_ACCESS_MATURE); + + aa.setMaturity('P'); + ensure("1 preferred maturity pegged to P when maturity is P", cgr.getU32("PreferredMaturity") == SIM_ACCESS_PG); + } + */ }