phoenix-firestorm/indra/llappearance
Nat Goodspeed ae6440eecc MAINT-4744: Eliminate viewer dependency on (old) GNU libstdc++.
To be more accurate, this changeset doesn't actually eliminate the dependency:
it eliminates the use cases for the llifstream / llofstream feature that
requires it.
Currently you can construct an llifstream or llofstream from an open LLFILE*
file handle (or, except on Windows, an int file descriptor). But rather than
containing a streambuf implementation based on FILE*, llfile.h relies on the
fact that the Windows std::filebuf happens to support that as a nonstandard
extension; also on a nonstandard GNU extension __gnu_cxx::stdio_filebuf<char>.
To move from GNU libstdc++ to clang's libc++ (the direction on Mac), we could
code a streambuf that supports FILE*. But before doing that, it's worth asking
whether anyone actually uses this questionable feature.
In fact there were only two methods: LLWearable::exportFile() and importFile()
-- and only one call to either, in LLViewerWearable::saveNewAsset(). The code
in saveNewAsset() opened the LLFILE* immediately before calling exportFile(),
meaning we could reasonably push the open operation down into exportFile().
That logic was complex anyway due to the need for the caller to close the
LLFILE* regardless of the success of the exportFile().
Change LLWearable::exportFile() and importFile() to accept a std::string
filename rather than an open LLFILE*. Change LLViewerWearable::saveNewAsset()
to simply call exportFile(filename) rather than horsing around with an LLFILE*
handle. (This improves the code in another way too: it encapsulates the need
to open the relevant file in binary mode. Previously, each caller had to
remember to do that.)
To prevent inadvertent reintroduction of ll[io]fstream(LLFILE*) code, add
llstream_LLFILE preprocessor macro (default 0) to control access to the
relevant constructors. Also suppress rdbuf() override, the only method whose
signature references llstdio_filebuf.
2015-01-28 15:55:18 -05:00
..
CMakeLists.txt
llavatarappearance.cpp SL-93 - WIP on managing pelvis fixups using new joint offset framework 2014-10-30 04:20:12 -04:00
llavatarappearance.h SL-93 - WIP on managing pelvis fixups using new joint offset framework 2014-10-30 04:20:12 -04:00
llavatarappearancedefines.cpp
llavatarappearancedefines.h
llavatarjoint.cpp second phase summer cleaning 2013-08-09 17:11:19 -07:00
llavatarjoint.h
llavatarjointmesh.cpp second phase summer cleaning 2013-08-09 17:11:19 -07:00
llavatarjointmesh.h
lldriverparam.cpp Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lldriverparam.h Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lljointpickname.h
lllocaltextureobject.cpp second phase summer cleaning 2013-08-09 17:11:19 -07:00
lllocaltextureobject.h
llpolymesh.cpp second phase summer cleaning 2013-08-09 17:11:19 -07:00
llpolymesh.h Summer cleaning - removed a lot of llcommon dependencies to speed up build times 2013-07-30 19:13:45 -07:00
llpolymorph.cpp Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
llpolymorph.h Add bespoke ctor/dtor that align on 16byte boundaries when creating things on the heap 2014-12-11 16:32:13 -08:00
llpolyskeletaldistortion.cpp MAINT-4158 WIP - track position overrides requested by attachments so they can be undone intelligently 2014-08-28 17:32:22 -04:00
llpolyskeletaldistortion.h Add bespoke ctor/dtor that align on 16byte boundaries when creating things on the heap 2014-12-11 16:32:13 -08:00
lltexglobalcolor.cpp Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lltexglobalcolor.h Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lltexlayer.cpp v-r -> s-e merge WIP 2014-05-14 17:50:59 -04:00
lltexlayer.h
lltexlayerparams.cpp Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lltexlayerparams.h Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
lltexturemanagerbridge.cpp
lltexturemanagerbridge.h Update to build on Xcode 6.0: delete called on that is abstract but has non-virtual dest 2014-10-20 11:18:30 -07:00
llviewervisualparam.cpp Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365. 2014-06-02 22:32:16 +01:00
llviewervisualparam.h MAINT-4077: Refactoring to add copy constructors to the LLVisualParam class and all of its derived descendants in order to clarify ownership of memory pointers. 2014-05-23 21:56:44 +01:00
llwearable.cpp MAINT-4744: Eliminate viewer dependency on (old) GNU libstdc++. 2015-01-28 15:55:18 -05:00
llwearable.h MAINT-4744: Eliminate viewer dependency on (old) GNU libstdc++. 2015-01-28 15:55:18 -05:00
llwearabledata.cpp Update to build on Xcode 6.0: clang detecting unsigned int (size_t) comparison with <0 [-Wtautological-compare] 2014-10-17 15:58:28 -07:00
llwearabledata.h
llwearabletype.cpp
llwearabletype.h Update to build on Xcode 6.0: delete called on 'LLTranslationBridge' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] 2014-10-17 15:49:33 -07:00