Skip to content

Commit e6927d8

Browse files
authored
Merge pull request #3304 from secondlife/release/2024.12-ForeverFPS
2024.12 ForeverFPS
2 parents 5029f03 + 42ceac9 commit e6927d8

File tree

149 files changed

+2089
-1138
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+2089
-1138
lines changed

.github/workflows/build.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
needs: setup
4343
strategy:
4444
matrix:
45-
runner: [windows-large, macos-12-large]
45+
runner: [windows-large, macos-15-xlarge]
4646
configuration: ${{ fromJSON(needs.setup.outputs.configurations) }}
4747
runs-on: ${{ matrix.runner }}
4848
outputs:
@@ -64,7 +64,7 @@ jobs:
6464
# autobuild-package.xml.
6565
AUTOBUILD_VCS_INFO: "true"
6666
AUTOBUILD_VSVER: "170"
67-
DEVELOPER_DIR: "/Applications/Xcode_14.0.1.app/Contents/Developer"
67+
DEVELOPER_DIR: "/Applications/Xcode_16.1.app/Contents/Developer"
6868
# Ensure that Linden viewer builds engage Bugsplat.
6969
BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }}
7070
build_coverity: false

.github/workflows/cla.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@ jobs:
2323
path-to-signatures: signatures.json
2424
remote-organization-name: secondlife
2525
remote-repository-name: cla-signatures
26-
allowlist: [email protected]
26+

.github/workflows/tag-release.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ jobs:
3737
- name: Update Tag
3838
uses: actions/[email protected]
3939
with:
40-
github-token: ${{ secrets.GITHUB_TOKEN }}
40+
# use a real access token instead of GITHUB_TOKEN default.
41+
# required so that the results of this tag creation can trigger the build workflow
42+
# https://stackoverflow.com/a/71372524
43+
# https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow
44+
# this token will need to be renewed anually in January
45+
github-token: ${{ secrets.LL_TAG_RELEASE_TOKEN }}
4146
script: |
4247
github.rest.git.createRef({
4348
owner: context.repo.owner,

indra/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ else()
2929
set( USE_AUTOBUILD_3P ON )
3030
endif()
3131

32+
if (NOT DEFINED CMAKE_CXX_STANDARD)
33+
set(CMAKE_CXX_STANDARD 20)
34+
endif()
35+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
36+
3237
include(Variables)
3338
include(BuildVersion)
3439

indra/llappearance/llavatarappearancedefines.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByImageName(std::strin
300300

301301
LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIndex index ) const
302302
{
303-
return getTexture(index)->mWearableType;
303+
auto* tex = getTexture(index);
304+
return tex ? tex->mWearableType : LLWearableType::WT_INVALID;
304305
}
305306

306307
// static

indra/llappearance/llwearable.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ void LLWearable::setVisualParamWeight(S32 param_index, F32 value)
652652
}
653653
else
654654
{
655-
LL_ERRS() << "LLWearable::setVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << LL_ENDL;
655+
LL_WARNS() << "LLWearable::setVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << LL_ENDL;
656656
}
657657
}
658658

@@ -665,7 +665,7 @@ F32 LLWearable::getVisualParamWeight(S32 param_index) const
665665
}
666666
else
667667
{
668-
LL_WARNS() << "LLWerable::getVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << LL_ENDL;
668+
LL_WARNS() << "LLWearable::getVisualParam passed invalid parameter index: " << param_index << " for wearable type: " << this->getName() << LL_ENDL;
669669
}
670670
return (F32)-1.0;
671671
}

indra/llcommon/fsyspath.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,11 @@ class fsyspath: public std::filesystem::path
6868
}
6969

7070
// shadow base-class string() method with UTF-8 aware method
71-
std::string string() const { return super::u8string(); }
71+
std::string string() const
72+
{
73+
auto u8 = super::u8string();
74+
return std::string(u8.begin(), u8.end());
75+
}
7276
// On Posix systems, where value_type is already char, this operator
7377
// std::string() method shadows the base class operator string_type()
7478
// method. But on Windows, where value_type is wchar_t, the base class

indra/llcommon/llerror.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,19 +1604,19 @@ namespace LLError
16041604
std::string LLUserWarningMsg::sLocalizedOutOfMemoryWarning;
16051605
LLUserWarningMsg::Handler LLUserWarningMsg::sHandler;
16061606

1607-
void LLUserWarningMsg::show(const std::string& message)
1607+
void LLUserWarningMsg::show(const std::string& message, S32 error_code)
16081608
{
16091609
if (sHandler)
16101610
{
1611-
sHandler(std::string(), message);
1611+
sHandler(std::string(), message, error_code);
16121612
}
16131613
}
16141614

16151615
void LLUserWarningMsg::showOutOfMemory()
16161616
{
16171617
if (sHandler && !sLocalizedOutOfMemoryTitle.empty())
16181618
{
1619-
sHandler(sLocalizedOutOfMemoryTitle, sLocalizedOutOfMemoryWarning);
1619+
sHandler(sLocalizedOutOfMemoryTitle, sLocalizedOutOfMemoryWarning, ERROR_BAD_ALLOC);
16201620
}
16211621
}
16221622

@@ -1627,7 +1627,7 @@ namespace LLError
16271627
"Second Life viewer couldn't access some of the files it needs and will be closed."
16281628
"\n\nPlease reinstall viewer from https://secondlife.com/support/downloads/ and "
16291629
"contact https://support.secondlife.com if issue persists after reinstall.";
1630-
sHandler("Missing Files", error_string);
1630+
sHandler("Missing Files", error_string, ERROR_MISSING_FILES);
16311631
}
16321632

16331633
void LLUserWarningMsg::setHandler(const LLUserWarningMsg::Handler &handler)

indra/llcommon/llerror.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,15 +308,24 @@ namespace LLError
308308
class LLUserWarningMsg
309309
{
310310
public:
311-
typedef std::function<void(const std::string&, const std::string&)> Handler;
311+
// error codes, tranlates to last_exec states like LAST_EXEC_OTHER_CRASH
312+
typedef enum
313+
{
314+
ERROR_OTHER = 0,
315+
ERROR_BAD_ALLOC = 1,
316+
ERROR_MISSING_FILES = 2,
317+
} eLastExecEvent;
318+
319+
// tittle, message and error code to include in error marker file
320+
typedef std::function<void(const std::string&, const std::string&, S32 error_code)> Handler;
312321
static void setHandler(const Handler&);
313322
static void setOutOfMemoryStrings(const std::string& title, const std::string& message);
314323

315324
// When viewer encounters bad alloc or can't access files try warning user about reasons
316325
static void showOutOfMemory();
317326
static void showMissingFiles();
318327
// Genering error
319-
static void show(const std::string&);
328+
static void show(const std::string&, S32 error_code = -1);
320329

321330
private:
322331
// needs to be preallocated before viewer runs out of memory

indra/llcommon/llqueuedthread.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ size_t LLQueuedThread::updateQueue(F32 max_time_ms)
146146
// schedule a call to threadedUpdate for every call to updateQueue
147147
if (!isQuitting())
148148
{
149-
mRequestQueue.post([=]()
149+
mRequestQueue.post([=, this]()
150150
{
151151
LL_PROFILE_ZONE_NAMED_CATEGORY_THREAD("qt - update");
152152
mIdleThread = false;
@@ -474,7 +474,7 @@ void LLQueuedThread::processRequest(LLQueuedThread::QueuedRequest* req)
474474
#else
475475
using namespace std::chrono_literals;
476476
auto retry_time = LL::WorkQueue::TimePoint::clock::now() + 16ms;
477-
mRequestQueue.post([=]
477+
mRequestQueue.post([=, this]
478478
{
479479
LL_PROFILE_ZONE_NAMED("processRequest - retry");
480480
if (LL::WorkQueue::TimePoint::clock::now() < retry_time)

0 commit comments

Comments
 (0)