It seems newer compilers have a different interpretation of exactly when to engage LLSDArray's copy constructor. In particular, this assignment: some_LLSD_map[key] = LLSDArray(...)(...)...; used to convert the LLSDArray object directly to LLSD; now it first calls the custom copy constructor, which embeds the intended array within an outer array before assigning it into the containing map. The newer llsd::array() function avoids that problem because what it returns is already an LLSD object. Taking inventory of LLSDArray assignments of that form turned up a number of workarounds like LLSD(LLSDArray(...)). Replacing those with llsd::array() is both simpler and more readable. Tip of the hat to Chorazinallen for surfacing this issue! |
||
|---|---|---|
| .. | ||
| tests | ||
| CMakeLists.txt | ||
| llcategory.cpp | ||
| llcategory.h | ||
| llfoldertype.cpp | ||
| llfoldertype.h | ||
| llinventory.cpp | ||
| llinventory.h | ||
| llinventorydefines.cpp | ||
| llinventorydefines.h | ||
| llinventorysettings.cpp | ||
| llinventorysettings.h | ||
| llinventorytype.cpp | ||
| llinventorytype.h | ||
| llinvtranslationbrdg.h | ||
| lllandmark.cpp | ||
| lllandmark.h | ||
| llnotecard.cpp | ||
| llnotecard.h | ||
| llparcel.cpp | ||
| llparcel.h | ||
| llparcelflags.h | ||
| llpermissions.cpp | ||
| llpermissions.h | ||
| llpermissionsflags.h | ||
| llsaleinfo.cpp | ||
| llsaleinfo.h | ||
| llsettingsbase.cpp | ||
| llsettingsbase.h | ||
| llsettingsdaycycle.cpp | ||
| llsettingsdaycycle.h | ||
| llsettingssky.cpp | ||
| llsettingssky.h | ||
| llsettingswater.cpp | ||
| llsettingswater.h | ||
| lltransactionflags.cpp | ||
| lltransactionflags.h | ||
| lltransactiontypes.h | ||
| lluserrelations.cpp | ||
| lluserrelations.h | ||