Age | Commit message (Collapse) | Author |
|
Add PipeWire as option for Linux volume catcher
|
|
The viewer now prefers to load inventory via the capability rather than
over the deprecated Xfer system, though both are still supported.
|
|
Retargeting PR #1496 to Maint B.
|
|
attachment list gets filled with object ids, not attachment ids
|
|
Introduce AlwaysReturn<void> specialization, which always discards any result
of calling the specified callable with specified args.
Derive new Windows_SEH_exception from LLException, not std::runtime_error.
Put the various SEH functions in LL::seh nested namespace, e.g.
LL::seh::catcher() as the primary API.
Break out more levels of Windows SEH handler to work around the restrictions on
functions containing __try/__except.
The triadic catcher() overload now does little save declare a std::string
stacktrace before forwarding the call to catcher_inner(), passing a reference
to stacktrace along with the trycode, filter and handler functions.
catcher_inner() accepts the stacktrace and the three function template
arguments. It contains the __try/__except logic. It calls a new filter_()
wrapper template, which calls fill_stacktrace() before forwarding the call to
the caller's filter function. fill_stacktrace(), in the .cpp file, contains
the logic to populate the stacktrace string -- unless the Structured Exception
is stack overflow, in which case it puts an explanatory string instead.
catcher_inner()'s __except clause passes not only the code, but also the
stacktrace string, to the caller's handler function. It wraps the caller's
handler function in always_return<rtype>(), where rtype is the type returned
by the trycode function. This allows a handler to return a value, while also
supporting the void handler case, e.g. one that throws a C++ exception. (This
is why we need AlwaysReturn<void>: some trycode() functions are themselves
void.)
For the dyadic catcher() overload, introduce common_filter() containing the
logic to distinguish a C++ exception from any other kind of Structured
Exception. The fact that the stacktrace is captured before the filter function
is called should permit capturing a stacktrace for a C++ exception as well as
for most other Structured Exceptions.
As before, the monadic catcher() overload supplies the rethrow() handler, in
the .cpp file.
Change existing calls from seh_catcher() to LL::seh::catcher().
|
|
|
|
|
|
|
|
|
|
to pick up mac build fixes
|
|
# Conflicts:
# autobuild.xml
# indra/cmake/ConfigurePkgConfig.cmake
# indra/cmake/ICU4C.cmake
# indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp
# indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
# indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h
# indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
# indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h
# indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
# indra/newview/llappviewerlinux_api.h
# indra/newview/llappviewerlinux_api_dbus.cpp
# indra/newview/llappviewerlinux_api_dbus.h
# indra/newview/llfloateremojipicker.cpp
# indra/newview/lloutfitslist.cpp
|
|
following promotion of secondlife/viewer #705: Maintenance X
|
|
Marketplace is not visible outside of own floater and that floater will
do an extra warning when deleting listings that have additional data.
|
|
|
|
|
|
LF, and trim trailing whitespaces as needed
|
|
delete once per session, not once per instance
|
|
Follow-up to previous commit 4a07fd3. This will resolve the warning
showing up when loading the viewer for the first time.
|
|
since server still sends those in some cases
|
|
|
|
|
|
following promotion of secondlife/viewer #736
|
|
|
|
|
|
|
|
|
|
This reverts commit 810a3d24c2e3671f926091c062b101bdec6a1517. (secondlife/jira-archive-internal#70482)
|
|
This reverts commit 810a3d24c2e3671f926091c062b101bdec6a1517. (secondlife/jira-archive-internal#70482)
|
|
|
|
|
|
|
|
|
|
* Remove all GCC warning suppression pragmas.
* For Linux just just raise(SIGSEGV) as the crash driver. This has a much higher chance of the compiler understanding out intent and figuring out we end the program here.
* Remove -Wno-stringop-overflow and -Wno-stringop-truncation from GCC_WARNINGS. After calling raise(SIGSEGV) as the crash driver I saw no issue with those warnings anymore
After removing thoses GCC pragmas there is also no need for clang -Wno-unknown-warning-option anymore.
* Remove CMakePresets from this PR.
* Remove Lindens from comments :)
|
|
Move towards packaging artifacts with xz, which offers higher compression ratios and faster decode time.
|
|
This reverts commit 810a3d24c2e3671f926091c062b101bdec6a1517. (secondlife/jira-archive-internal#70482)
|
|
|
|
|
|
Inject XZ_DEFAULTS=-T0 into the environment. This will speed up archive generation.
|
|
* GTK remnants removal
Remove old GTK code and wire up some missing fltk logic in llfilepicker
This will leave linux_crash_logger as an empy stub which could be used as a skeleton in case crash logging gets implemented.
Otherwise linux_crash_logger and what is left of it in some cmake files can be deleted.
* Update SDL2 to latest version.
This revealed openal has also a dependebcy on sndio. Consequently the dependency was moved to OPENMAL.cmake and canot be dropped.
* Handle missing filetypes:
FFSAVE_GLTF,FFLOAD_GLTF, FFLOAD_MATERIAL, FFLOAD_MATERIAL_TEXTURE
|
|
generation.
|
|
|
|
Release (Maint W) -> Maint X merge
|
|
png_read_info triggered a PngError, LLAppViewer::frame() handled it
instead of LLPngWrapper::readPng, and since status didn't
change viewer tried to decode image again and again and again.
|
|
# Conflicts:
# indra/llimage/llimageworker.cpp
# indra/llimage/llimageworker.h
# indra/newview/llcontrolavatar.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/lloutfitslist.cpp
# indra/newview/lloutfitslist.h
# indra/newview/lltexturefetch.cpp
|
|
Found by running with -fsanitze=thread
Suggestion to avoid accessing invalid memory:
In both cases memory will be allocated by can be accessed beyond bounds.
In LLPolyMesh it can be off by at least one (+x%2). Though I am not even sure if even in best case it always will be a multiple of 16.
In LLViewerJointMesh::updateFaceData the code tries to account for padding by, but the allocation in LLPolyMeshSharedData::allocateVertexData is done without any padding. Thus the sizes must not match.
Replacing the calls with memcpy as a quick fix to see if the error goes away fixed address sanitzer complaining.
It is up to debate if memcpy is a good replacement. LLVector4a::memcpyNonAliased16 was invented for performance. But on the other hand one could argue that nowadays every stdlib maintainer will very heavily optmize functions like memcpy themselves and could take advantage of CPU features the old LL implementation does not take into account.
AVX comes to mind. In any case did I not measure any of this.
|
|
Move towards packaging artifacts with xz, which offers higher compression ratios and faster decode time.
|
|
|
|
Otherwise the viewer ends with a dangling pointer in the map
|
|
secondlife/viewer#1149 (#1170)
|
|
This is to do with misunderstandings related to how .find()
works with multimaps. .find() will, in fact, return an iterator
to the first iterator it finds, and will iterate through all
elements in the multimap when incremented, not just items with
the same key.
Change code working with animation sources to be aware of this
fact, so unrelated animation sources do not have their animations
stopped.
|