From 44f5d7320952de2c4c7e1062b1c02c2f521400fa Mon Sep 17 00:00:00 2001 From: Jonathan Yap Date: Thu, 20 Nov 2014 16:25:11 -0500 Subject: STORM-2086 Convert old style llinfos and llwarns to new format --- indra/llcommon/llerror.h | 9 --------- 1 file changed, 9 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 63040e1772..73544cb914 100755 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -362,13 +362,4 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG; #define LL_INFOS_ONCE(...) lllog(LLError::LEVEL_INFO, true, ##__VA_ARGS__) #define LL_WARNS_ONCE(...) lllog(LLError::LEVEL_WARN, true, ##__VA_ARGS__) -// DEPRECATED: Use the new macros that allow tags and *look* like macros. -#define lldebugs LL_COMPILE_TIME_MESSAGE("Warning: lldebugs deprecated, use LL_DEBUGS() instead") LL_DEBUGS() -#define llinfos LL_COMPILE_TIME_MESSAGE("Warning: llinfos deprecated, use LL_INFOS() instead") LL_INFOS() -#define llwarns LL_COMPILE_TIME_MESSAGE("Warning: llwarns deprecated, use LL_WARNS() instead") LL_WARNS() -#define llerrs LL_COMPILE_TIME_MESSAGE("Warning: llerrs deprecated, use LL_ERRS() instead") LL_ERRS() -#define llcont LL_COMPILE_TIME_MESSAGE("Warning: llcont deprecated, use LL_CONT instead") LL_CONT -#define llendl LL_COMPILE_TIME_MESSAGE("Warning: llendl deprecated, use LL_ENDL instead") LL_ENDL - - #endif // LL_LLERROR_H -- cgit v1.2.3 From e9be710daf3d1135f732632d09007920e1d0ff81 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Wed, 15 Apr 2015 13:26:32 -0400 Subject: Strip down the Windows ll[io]fstream implementations to constructors and open() methods. The only remaining value added by ll[io]fstream over std::[io]stream is proper handling of non-ASCII pathnames, which can be done by deriving from std::[io]stream, converting pathname strings and passing them to the corresponding base-class methods. This is only necessary on Windows. On Posix, ll[io]fstream are already typedefs for std::[io]fstream. This change removes a significant volume of cruft from llfile.{h,cpp}. --- indra/llcommon/llfile.cpp | 537 ++-------------------------------------------- indra/llcommon/llfile.h | 212 +----------------- 2 files changed, 25 insertions(+), 724 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp index 295c97eac8..873a7bce25 100755 --- a/indra/llcommon/llfile.cpp +++ b/indra/llcommon/llfile.cpp @@ -421,551 +421,42 @@ LLFILE * LLFile::_Fiopen(const std::string& filename, #endif /* LL_WINDOWS */ -/************** llstdio file buffer ********************************/ - - -#if !LL_WINDOWS -llstdio_filebuf::int_type llstdio_filebuf::overflow(llstdio_filebuf::int_type __c) -{ - int_type __ret = traits_type::eof(); - const bool __testeof = traits_type::eq_int_type(__c, __ret); - const bool __testout = _M_mode & ios_base::out; - if (__testout && !_M_reading) - { - if (this->pbase() < this->pptr()) - { - // If appropriate, append the overflow char. - if (!__testeof) - { - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - - // Convert pending sequence to external representation, - // and output. - if (_convert_to_external(this->pbase(), - this->pptr() - this->pbase())) - { - _M_set_buffer(0); - __ret = traits_type::not_eof(__c); - } - } - else if (_M_buf_size > 1) - { - // Overflow in 'uncommitted' mode: set _M_writing, set - // the buffer to the initial 'write' mode, and put __c - // into the buffer. - _M_set_buffer(0); - _M_writing = true; - if (!__testeof) - { - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - __ret = traits_type::not_eof(__c); - } - else - { - // Unbuffered. - char_type __conv = traits_type::to_char_type(__c); - if (__testeof || _convert_to_external(&__conv, 1)) - { - _M_writing = true; - __ret = traits_type::not_eof(__c); - } - } - } - return __ret; -} - -bool llstdio_filebuf::_convert_to_external(char_type* __ibuf, - std::streamsize __ilen) -{ - // Sizes of external and pending output. - streamsize __elen; - streamsize __plen; - if (__check_facet(_M_codecvt).always_noconv()) - { - //__elen = _M_file.xsputn(reinterpret_cast(__ibuf), __ilen); - __elen = fwrite(reinterpret_cast(__ibuf), 1, - __ilen, _M_file.file()); - __plen = __ilen; - } - else - { - // Worst-case number of external bytes needed. - // XXX Not done encoding() == -1. - streamsize __blen = __ilen * _M_codecvt->max_length(); - char* __buf = static_cast(__builtin_alloca(__blen)); - - char* __bend; - const char_type* __iend; - codecvt_base::result __r; - __r = _M_codecvt->out(_M_state_cur, __ibuf, __ibuf + __ilen, - __iend, __buf, __buf + __blen, __bend); - - if (__r == codecvt_base::ok || __r == codecvt_base::partial) - __blen = __bend - __buf; - else if (__r == codecvt_base::noconv) - { - // Same as the always_noconv case above. - __buf = reinterpret_cast(__ibuf); - __blen = __ilen; - } - else - __throw_ios_failure(__N("llstdio_filebuf::_convert_to_external " - "conversion error")); - - //__elen = _M_file.xsputn(__buf, __blen); - __elen = fwrite(__buf, 1, __blen, _M_file.file()); - __plen = __blen; - - // Try once more for partial conversions. - if (__r == codecvt_base::partial && __elen == __plen) - { - const char_type* __iresume = __iend; - streamsize __rlen = this->pptr() - __iend; - __r = _M_codecvt->out(_M_state_cur, __iresume, - __iresume + __rlen, __iend, __buf, - __buf + __blen, __bend); - if (__r != codecvt_base::error) - { - __rlen = __bend - __buf; - //__elen = _M_file.xsputn(__buf, __rlen); - __elen = fwrite(__buf, 1, __rlen, _M_file.file()); - __plen = __rlen; - } - else - { - __throw_ios_failure(__N("llstdio_filebuf::_convert_to_external " - "conversion error")); - } - } - } - return __elen == __plen; -} - -llstdio_filebuf::int_type llstdio_filebuf::underflow() -{ - int_type __ret = traits_type::eof(); - const bool __testin = _M_mode & ios_base::in; - if (__testin) - { - if (_M_writing) - { - if (overflow() == traits_type::eof()) - return __ret; - //_M_set_buffer(-1); - //_M_writing = false; - } - // Check for pback madness, and if so switch back to the - // normal buffers and jet outta here before expensive - // fileops happen... - _M_destroy_pback(); - - if (this->gptr() < this->egptr()) - return traits_type::to_int_type(*this->gptr()); - - // Get and convert input sequence. - const size_t __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1; - - // Will be set to true if ::fread() returns 0 indicating EOF. - bool __got_eof = false; - // Number of internal characters produced. - streamsize __ilen = 0; - codecvt_base::result __r = codecvt_base::ok; - if (__check_facet(_M_codecvt).always_noconv()) - { - //__ilen = _M_file.xsgetn(reinterpret_cast(this->eback()), - // __buflen); - __ilen = fread(reinterpret_cast(this->eback()), 1, - __buflen, _M_file.file()); - if (__ilen == 0) - __got_eof = true; - } - else - { - // Worst-case number of external bytes. - // XXX Not done encoding() == -1. - const int __enc = _M_codecvt->encoding(); - streamsize __blen; // Minimum buffer size. - streamsize __rlen; // Number of chars to read. - if (__enc > 0) - __blen = __rlen = __buflen * __enc; - else - { - __blen = __buflen + _M_codecvt->max_length() - 1; - __rlen = __buflen; - } - const streamsize __remainder = _M_ext_end - _M_ext_next; - __rlen = __rlen > __remainder ? __rlen - __remainder : 0; - - // An imbue in 'read' mode implies first converting the external - // chars already present. - if (_M_reading && this->egptr() == this->eback() && __remainder) - __rlen = 0; - - // Allocate buffer if necessary and move unconverted - // bytes to front. - if (_M_ext_buf_size < __blen) - { - char* __buf = new char[__blen]; - if (__remainder) - __builtin_memcpy(__buf, _M_ext_next, __remainder); - - delete [] _M_ext_buf; - _M_ext_buf = __buf; - _M_ext_buf_size = __blen; - } - else if (__remainder) - __builtin_memmove(_M_ext_buf, _M_ext_next, __remainder); - - _M_ext_next = _M_ext_buf; - _M_ext_end = _M_ext_buf + __remainder; - _M_state_last = _M_state_cur; - - do - { - if (__rlen > 0) - { - // Sanity check! - // This may fail if the return value of - // codecvt::max_length() is bogus. - if (_M_ext_end - _M_ext_buf + __rlen > _M_ext_buf_size) - { - __throw_ios_failure(__N("llstdio_filebuf::underflow " - "codecvt::max_length() " - "is not valid")); - } - //streamsize __elen = _M_file.xsgetn(_M_ext_end, __rlen); - streamsize __elen = fread(_M_ext_end, 1, - __rlen, _M_file.file()); - if (__elen == 0) - __got_eof = true; - else if (__elen == -1) - break; - //_M_ext_end += __elen; - } - - char_type* __iend = this->eback(); - if (_M_ext_next < _M_ext_end) - { - __r = _M_codecvt->in(_M_state_cur, _M_ext_next, - _M_ext_end, _M_ext_next, - this->eback(), - this->eback() + __buflen, __iend); - } - if (__r == codecvt_base::noconv) - { - size_t __avail = _M_ext_end - _M_ext_buf; - __ilen = std::min(__avail, __buflen); - traits_type::copy(this->eback(), - reinterpret_cast - (_M_ext_buf), __ilen); - _M_ext_next = _M_ext_buf + __ilen; - } - else - __ilen = __iend - this->eback(); - - // _M_codecvt->in may return error while __ilen > 0: this is - // ok, and actually occurs in case of mixed encodings (e.g., - // XML files). - if (__r == codecvt_base::error) - break; - - __rlen = 1; - } while (__ilen == 0 && !__got_eof); - } - - if (__ilen > 0) - { - _M_set_buffer(__ilen); - _M_reading = true; - __ret = traits_type::to_int_type(*this->gptr()); - } - else if (__got_eof) - { - // If the actual end of file is reached, set 'uncommitted' - // mode, thus allowing an immediate write without an - // intervening seek. - _M_set_buffer(-1); - _M_reading = false; - // However, reaching it while looping on partial means that - // the file has got an incomplete character. - if (__r == codecvt_base::partial) - __throw_ios_failure(__N("llstdio_filebuf::underflow " - "incomplete character in file")); - } - else if (__r == codecvt_base::error) - __throw_ios_failure(__N("llstdio_filebuf::underflow " - "invalid byte sequence in file")); - else - __throw_ios_failure(__N("llstdio_filebuf::underflow " - "error reading the file")); - } - return __ret; -} - -std::streamsize llstdio_filebuf::xsgetn(char_type* __s, std::streamsize __n) -{ - // Clear out pback buffer before going on to the real deal... - streamsize __ret = 0; - if (_M_pback_init) - { - if (__n > 0 && this->gptr() == this->eback()) - { - *__s++ = *this->gptr(); - this->gbump(1); - __ret = 1; - --__n; - } - _M_destroy_pback(); - } - - // Optimization in the always_noconv() case, to be generalized in the - // future: when __n > __buflen we read directly instead of using the - // buffer repeatedly. - const bool __testin = _M_mode & ios_base::in; - const streamsize __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1; - - if (__n > __buflen && __check_facet(_M_codecvt).always_noconv() - && __testin && !_M_writing) - { - // First, copy the chars already present in the buffer. - const streamsize __avail = this->egptr() - this->gptr(); - if (__avail != 0) - { - if (__avail == 1) - *__s = *this->gptr(); - else - traits_type::copy(__s, this->gptr(), __avail); - __s += __avail; - this->gbump(__avail); - __ret += __avail; - __n -= __avail; - } - - // Need to loop in case of short reads (relatively common - // with pipes). - streamsize __len; - for (;;) - { - //__len = _M_file.xsgetn(reinterpret_cast(__s), __n); - __len = fread(reinterpret_cast(__s), 1, - __n, _M_file.file()); - if (__len == -1) - __throw_ios_failure(__N("llstdio_filebuf::xsgetn " - "error reading the file")); - if (__len == 0) - break; - - __n -= __len; - __ret += __len; - if (__n == 0) - break; - - __s += __len; - } - - if (__n == 0) - { - _M_set_buffer(0); - _M_reading = true; - } - else if (__len == 0) - { - // If end of file is reached, set 'uncommitted' - // mode, thus allowing an immediate write without - // an intervening seek. - _M_set_buffer(-1); - _M_reading = false; - } - } - else - __ret += __streambuf_type::xsgetn(__s, __n); - - return __ret; -} - -std::streamsize llstdio_filebuf::xsputn(const char_type* __s, std::streamsize __n) -{ - // Optimization in the always_noconv() case, to be generalized in the - // future: when __n is sufficiently large we write directly instead of - // using the buffer. - streamsize __ret = 0; - const bool __testout = _M_mode & ios_base::out; - if (__check_facet(_M_codecvt).always_noconv() - && __testout && !_M_reading) - { - // Measurement would reveal the best choice. - const streamsize __chunk = 1ul << 10; - streamsize __bufavail = this->epptr() - this->pptr(); - - // Don't mistake 'uncommitted' mode buffered with unbuffered. - if (!_M_writing && _M_buf_size > 1) - __bufavail = _M_buf_size - 1; - - const streamsize __limit = std::min(__chunk, __bufavail); - if (__n >= __limit) - { - const streamsize __buffill = this->pptr() - this->pbase(); - const char* __buf = reinterpret_cast(this->pbase()); - //__ret = _M_file.xsputn_2(__buf, __buffill, - // reinterpret_cast(__s), __n); - if (__buffill) - { - __ret = fwrite(__buf, 1, __buffill, _M_file.file()); - } - if (__ret == __buffill) - { - __ret += fwrite(reinterpret_cast(__s), 1, - __n, _M_file.file()); - } - if (__ret == __buffill + __n) - { - _M_set_buffer(0); - _M_writing = true; - } - if (__ret > __buffill) - __ret -= __buffill; - else - __ret = 0; - } - else - __ret = __streambuf_type::xsputn(__s, __n); - } - else - __ret = __streambuf_type::xsputn(__s, __n); - return __ret; -} - -int llstdio_filebuf::sync() -{ - return (_M_file.sync() == 0 ? 0 : -1); -} -#endif #if LL_WINDOWS /************** input file stream ********************************/ -llifstream::llifstream() : - _M_filebuf(), - std::istream(&_M_filebuf) -{ -} +llifstream::llifstream() {} // explicit -llifstream::llifstream(const std::string& _Filename, - ios_base::openmode _Mode) : - _M_filebuf(), - std::istream(&_M_filebuf) +llifstream::llifstream(const std::string& _Filename, ios_base::openmode _Mode): + std::ifstream(utf8str_to_utf16str( _Filename ).c_str(), + _Mode | ios_base::in) { - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open(wideName.c_str(), _Mode | ios_base::in) == 0) - { - _Myios::setstate(ios_base::failbit); - } } -// explicit -llifstream::llifstream(const char* _Filename, - ios_base::openmode _Mode) : - _M_filebuf(), - std::istream(&_M_filebuf) +void llifstream::open(const std::string& _Filename, ios_base::openmode _Mode) { - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open(wideName.c_str(), _Mode | ios_base::in) == 0) - { - _Myios::setstate(ios_base::failbit); - } -} - -bool llifstream::is_open() const -{ // test if C stream has been opened - return _M_filebuf.is_open(); -} - -void llifstream::open(const char* _Filename, ios_base::openmode _Mode) -{ // open a C stream with specified mode - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::in) == 0) - { - _Myios::setstate(ios_base::failbit); - } - else - { - _Myios::clear(); - } -} - -void llifstream::close() -{ // close the C stream - if (_M_filebuf.close() == 0) - { - _Myios::setstate(ios_base::failbit); - } + std::ifstream::open(utf8str_to_utf16str(_Filename).c_str(), + _Mode | ios_base::in); } /************** output file stream ********************************/ -llofstream::llofstream() : - _M_filebuf(), - std::ostream(&_M_filebuf) -{ -} +llofstream::llofstream() {} // explicit -llofstream::llofstream(const std::string& _Filename, - ios_base::openmode _Mode) : - _M_filebuf(), - std::ostream(&_M_filebuf) +llofstream::llofstream(const std::string& _Filename, ios_base::openmode _Mode): + std::ofstream(utf8str_to_utf16str( _Filename ).c_str(), + _Mode | ios_base::out) { - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0) - { - _Myios::setstate(ios_base::failbit); - } } -// explicit -llofstream::llofstream(const char* _Filename, - ios_base::openmode _Mode) : - _M_filebuf(), - std::ostream(&_M_filebuf) +void llofstream::open(const std::string& _Filename, ios_base::openmode _Mode) { - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0) - { - _Myios::setstate(ios_base::failbit); - } -} - -bool llofstream::is_open() const -{ // test if C stream has been opened - return _M_filebuf.is_open(); -} - -void llofstream::open(const char* _Filename, ios_base::openmode _Mode) -{ // open a C stream with specified mode - llutf16string wideName = utf8str_to_utf16str( _Filename ); - if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0) - { - _Myios::setstate(ios_base::failbit); - } - else - { - _Myios::clear(); - } -} - -void llofstream::close() -{ // close the C stream - if (_M_filebuf.close() == 0) - { - _Myios::setstate(ios_base::failbit); - } + std::ofstream::open(utf8str_to_utf16str( _Filename ).c_str(), + _Mode | ios_base::out); } /************** helper functions ********************************/ diff --git a/indra/llcommon/llfile.h b/indra/llcommon/llfile.h index 347c9867aa..423f1f4965 100755 --- a/indra/llcommon/llfile.h +++ b/indra/llcommon/llfile.h @@ -86,123 +86,16 @@ public: static const char * tmpdir(); }; -/** - * @brief Provides a layer of compatibility for C/POSIX. - * - * This is taken from both the GNU __gnu_cxx::stdio_filebuf extension and - * VC's basic_filebuf implementation. - * This file buffer provides extensions for working with standard C FILE*'s - * and POSIX file descriptors for platforms that support this. -*/ -namespace -{ -#if LL_WINDOWS -typedef std::filebuf _Myfb; -#else -typedef __gnu_cxx::stdio_filebuf< char > _Myfb; -typedef std::__c_file _Filet; -#endif /* LL_WINDOWS */ -} - -class LL_COMMON_API llstdio_filebuf : public _Myfb -{ -public: - /** - * deferred initialization / destruction - */ - llstdio_filebuf() : _Myfb() {} - virtual ~llstdio_filebuf() {} - - /** - * @param f An open @c FILE*. - * @param mode Same meaning as in a standard filebuf. - * @param size Optimal or preferred size of internal buffer, in chars. - * Defaults to system's @c BUFSIZ. - * - * This constructor associates a file stream buffer with an open - * C @c FILE*. The @c FILE* will not be automatically closed when the - * stdio_filebuf is closed/destroyed. - */ - llstdio_filebuf(_Filet* __f, std::ios_base::openmode __mode, - //size_t __size = static_cast(BUFSIZ)) : - size_t __size = static_cast(1)) : -#if LL_WINDOWS - _Myfb(__f) {} -#else - _Myfb(__f, __mode, __size) {} -#endif - - /** - * @brief Opens an external file. - * @param s The name of the file. - * @param mode The open mode flags. - * @return @c this on success, NULL on failure - * - * If a file is already open, this function immediately fails. - * Otherwise it tries to open the file named @a s using the flags - * given in @a mode. - */ - //llstdio_filebuf* open(const char *_Filename, - // std::ios_base::openmode _Mode); - - /** - * @param fd An open file descriptor. - * @param mode Same meaning as in a standard filebuf. - * @param size Optimal or preferred size of internal buffer, in chars. - * - * This constructor associates a file stream buffer with an open - * POSIX file descriptor. The file descriptor will be automatically - * closed when the stdio_filebuf is closed/destroyed. - */ -#if !LL_WINDOWS - llstdio_filebuf(int __fd, std::ios_base::openmode __mode, - //size_t __size = static_cast(BUFSIZ)) : - size_t __size = static_cast(1)) : - _Myfb(__fd, __mode, __size) {} -#endif - -// *TODO: Seek the underlying c stream for better cross-platform compatibility? -#if !LL_WINDOWS -protected: - /** underflow() and uflow() functions are called to get the next - * character from the real input source when the buffer is empty. - * Buffered input uses underflow() - */ - /*virtual*/ int_type underflow(); - - /* Convert internal byte sequence to external, char-based - * sequence via codecvt. - */ - bool _convert_to_external(char_type*, std::streamsize); - - /** The overflow() function is called to transfer characters to the - * real output destination when the buffer is full. A call to - * overflow(c) outputs the contents of the buffer plus the - * character c. - * Consume some sequence of the characters in the pending sequence. - */ - /*virtual*/ int_type overflow(int_type __c = traits_type::eof()); - - /** sync() flushes the underlying @c FILE* stream. - */ - /*virtual*/ int sync(); - - std::streamsize xsgetn(char_type*, std::streamsize); - std::streamsize xsputn(const char_type*, std::streamsize); -#endif -}; - #if LL_WINDOWS /** * @brief Controlling input for files. * * This class supports reading from named files, using the inherited - * functions from std::basic_istream. To control the associated - * sequence, an instance of std::basic_filebuf (or a platform-specific derivative) - * which allows construction using a pre-exisintg file stream buffer. - * We refer to this std::basic_filebuf (or derivative) as @c sb. + * functions from std::ifstream. The only added value is that our constructor + * Does The Right Thing when passed a non-ASCII pathname. Sadly, that isn't + * true of Microsoft's std::ifstream. */ -class LL_COMMON_API llifstream : public std::istream +class LL_COMMON_API llifstream : public std::ifstream { // input stream associated with a C stream public: @@ -225,32 +118,6 @@ class LL_COMMON_API llifstream : public std::istream */ explicit llifstream(const std::string& _Filename, ios_base::openmode _Mode = ios_base::in); - explicit llifstream(const char* _Filename, - ios_base::openmode _Mode = ios_base::in); - - /** - * @brief The destructor does nothing. - * - * The file is closed by the filebuf object, not the formatting - * stream. - */ - virtual ~llifstream() {} - - // Members: - /** - * @brief Accessing the underlying buffer. - * @return The current basic_filebuf buffer. - * - * This hides both signatures of std::basic_ios::rdbuf(). - */ - llstdio_filebuf* rdbuf() const - { return const_cast(&_M_filebuf); } - - /** - * @brief Wrapper to test for an open file. - * @return @c rdbuf()->is_open() - */ - bool is_open() const; /** * @brief Opens an external file. @@ -261,34 +128,19 @@ class LL_COMMON_API llifstream : public std::istream * fails, @c failbit is set in the stream's error state. */ void open(const std::string& _Filename, - ios_base::openmode _Mode = ios_base::in) - { open(_Filename.c_str(), _Mode); } - void open(const char* _Filename, ios_base::openmode _Mode = ios_base::in); - - /** - * @brief Close the file. - * - * Calls @c llstdio_filebuf::close(). If that function - * fails, @c failbit is set in the stream's error state. - */ - void close(); - - private: - llstdio_filebuf _M_filebuf; }; /** * @brief Controlling output for files. * - * This class supports writing to named files, using the inherited - * functions from std::basic_ostream. To control the associated - * sequence, an instance of std::basic_filebuf (or a platform-specific derivative) - * which allows construction using a pre-exisintg file stream buffer. - * We refer to this std::basic_filebuf (or derivative) as @c sb. + * This class supports writing to named files, using the inherited functions + * from std::ofstream. The only added value is that our constructor Does The + * Right Thing when passed a non-ASCII pathname. Sadly, that isn't true of + * Microsoft's std::ofstream. */ -class LL_COMMON_API llofstream : public std::ostream +class LL_COMMON_API llofstream : public std::ofstream { public: // Constructors: @@ -306,62 +158,20 @@ class LL_COMMON_API llofstream : public std::ostream * @param Filename String specifying the filename. * @param Mode Open file in specified mode (see std::ios_base). * - * @c ios_base::out|ios_base::trunc is automatically included in - * @a mode. + * @c ios_base::out is automatically included in @a mode. */ explicit llofstream(const std::string& _Filename, ios_base::openmode _Mode = ios_base::out|ios_base::trunc); - explicit llofstream(const char* _Filename, - ios_base::openmode _Mode = ios_base::out|ios_base::trunc); - - /** - * @brief The destructor does nothing. - * - * The file is closed by the filebuf object, not the formatting - * stream. - */ - virtual ~llofstream() {} - - // Members: - /** - * @brief Accessing the underlying buffer. - * @return The current basic_filebuf buffer. - * - * This hides both signatures of std::basic_ios::rdbuf(). - */ - llstdio_filebuf* rdbuf() const - { return const_cast(&_M_filebuf); } - - /** - * @brief Wrapper to test for an open file. - * @return @c rdbuf()->is_open() - */ - bool is_open() const; /** * @brief Opens an external file. * @param Filename The name of the file. * @param Node The open mode flags. * - * Calls @c llstdio_filebuf::open(s,mode|out). If that function - * fails, @c failbit is set in the stream's error state. + * @c ios_base::out is automatically included in @a mode. */ void open(const std::string& _Filename, - ios_base::openmode _Mode = ios_base::out|ios_base::trunc) - { open(_Filename.c_str(), _Mode); } - void open(const char* _Filename, ios_base::openmode _Mode = ios_base::out|ios_base::trunc); - - /** - * @brief Close the file. - * - * Calls @c llstdio_filebuf::close(). If that function - * fails, @c failbit is set in the stream's error state. - */ - void close(); - - private: - llstdio_filebuf _M_filebuf; }; -- cgit v1.2.3 From cc587b9ef98f31696428a6a1aee11ee09b851275 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Wed, 15 Apr 2015 16:49:58 -0400 Subject: MAINT-4744: remove nonstandard #include from llfile.h. Changeset ffd264ca493c removed the whole llstdio_filebuf construct, which is what depended on the __gnu_cxx::stdio_filebuf<> extension. Now, even on Windows, ll[io]fstream very closely resembles std::[io]fstream. Since we no longer depend on that extension, we can remove its #include. This should (!) remove the last obstacle to building with libc++ on the Mac. --- indra/llcommon/llfile.h | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llfile.h b/indra/llcommon/llfile.h index 423f1f4965..3e25228aeb 100755 --- a/indra/llcommon/llfile.h +++ b/indra/llcommon/llfile.h @@ -45,7 +45,6 @@ typedef FILE LLFILE; typedef struct _stat llstat; #else typedef struct stat llstat; -#include #include #endif -- cgit v1.2.3 From c8726aba303bcf1207b730a344536e25491420bc Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 10 Nov 2015 09:48:56 -0500 Subject: remove execute permission from many files that should not have it --- indra/llcommon/CMakeLists.txt | 0 indra/llcommon/ctype_workaround.h | 0 indra/llcommon/fix_macros.h | 0 indra/llcommon/indra_constants.cpp | 0 indra/llcommon/indra_constants.h | 0 indra/llcommon/is_approx_equal_fraction.h | 0 indra/llcommon/linden_common.h | 0 indra/llcommon/llallocator.cpp | 0 indra/llcommon/llallocator.h | 0 indra/llcommon/llallocator_heap_profile.cpp | 0 indra/llcommon/llallocator_heap_profile.h | 0 indra/llcommon/llapp.cpp | 0 indra/llcommon/llapp.h | 0 indra/llcommon/llapr.cpp | 0 indra/llcommon/llapr.h | 0 indra/llcommon/llassettype.cpp | 0 indra/llcommon/llassettype.h | 0 indra/llcommon/llbase32.cpp | 0 indra/llcommon/llbase32.h | 0 indra/llcommon/llbase64.cpp | 0 indra/llcommon/llbase64.h | 0 indra/llcommon/llbitpack.cpp | 0 indra/llcommon/llbitpack.h | 0 indra/llcommon/llboost.h | 0 indra/llcommon/llcommon.cpp | 0 indra/llcommon/llcommon.h | 0 indra/llcommon/llcommonutils.cpp | 0 indra/llcommon/llcommonutils.h | 0 indra/llcommon/llcoros.cpp | 0 indra/llcommon/llcoros.h | 0 indra/llcommon/llcrc.cpp | 0 indra/llcommon/llcrc.h | 0 indra/llcommon/llcriticaldamp.cpp | 0 indra/llcommon/llcriticaldamp.h | 0 indra/llcommon/lldate.cpp | 0 indra/llcommon/lldate.h | 0 indra/llcommon/lldefs.h | 0 indra/llcommon/lldependencies.cpp | 0 indra/llcommon/lldependencies.h | 0 indra/llcommon/lldepthstack.h | 0 indra/llcommon/lldictionary.cpp | 0 indra/llcommon/lldictionary.h | 0 indra/llcommon/lldoubledispatch.h | 0 indra/llcommon/llendianswizzle.h | 0 indra/llcommon/llerror.cpp | 0 indra/llcommon/llerror.h | 0 indra/llcommon/llerrorcontrol.h | 0 indra/llcommon/llerrorlegacy.h | 0 indra/llcommon/llerrorthread.cpp | 0 indra/llcommon/llerrorthread.h | 0 indra/llcommon/llevent.cpp | 0 indra/llcommon/llevent.h | 0 indra/llcommon/lleventapi.cpp | 0 indra/llcommon/lleventapi.h | 0 indra/llcommon/lleventcoro.cpp | 0 indra/llcommon/lleventcoro.h | 0 indra/llcommon/lleventdispatcher.cpp | 0 indra/llcommon/lleventdispatcher.h | 0 indra/llcommon/lleventemitter.h | 0 indra/llcommon/lleventfilter.cpp | 0 indra/llcommon/lleventfilter.h | 0 indra/llcommon/llevents.cpp | 0 indra/llcommon/llevents.h | 0 indra/llcommon/lleventtimer.cpp | 0 indra/llcommon/lleventtimer.h | 0 indra/llcommon/llfasttimer.cpp | 0 indra/llcommon/llfasttimer.h | 0 indra/llcommon/llfile.cpp | 0 indra/llcommon/llfile.h | 0 indra/llcommon/llfindlocale.cpp | 0 indra/llcommon/llfindlocale.h | 0 indra/llcommon/llfixedbuffer.cpp | 0 indra/llcommon/llfixedbuffer.h | 0 indra/llcommon/llformat.cpp | 0 indra/llcommon/llformat.h | 0 indra/llcommon/llframetimer.cpp | 0 indra/llcommon/llframetimer.h | 0 indra/llcommon/llhandle.h | 0 indra/llcommon/llhash.h | 0 indra/llcommon/llheartbeat.cpp | 0 indra/llcommon/llheartbeat.h | 0 indra/llcommon/llindexedvector.h | 0 indra/llcommon/llinitparam.cpp | 0 indra/llcommon/llinitparam.h | 0 indra/llcommon/llinstancetracker.cpp | 0 indra/llcommon/llinstancetracker.h | 0 indra/llcommon/llkeythrottle.h | 0 indra/llcommon/llkeyusetracker.h | 0 indra/llcommon/llleap.cpp | 0 indra/llcommon/llleap.h | 0 indra/llcommon/llleaplistener.cpp | 0 indra/llcommon/llleaplistener.h | 0 indra/llcommon/lllistenerwrapper.h | 0 indra/llcommon/llliveappconfig.cpp | 0 indra/llcommon/llliveappconfig.h | 0 indra/llcommon/lllivefile.cpp | 0 indra/llcommon/lllivefile.h | 0 indra/llcommon/llmd5.cpp | 0 indra/llcommon/llmd5.h | 0 indra/llcommon/llmemory.cpp | 0 indra/llcommon/llmemory.h | 0 indra/llcommon/llmemorystream.cpp | 0 indra/llcommon/llmemorystream.h | 0 indra/llcommon/llmetricperformancetester.cpp | 0 indra/llcommon/llmetricperformancetester.h | 0 indra/llcommon/llmetrics.cpp | 0 indra/llcommon/llmetrics.h | 0 indra/llcommon/llmortician.cpp | 0 indra/llcommon/llmortician.h | 0 indra/llcommon/llpointer.h | 0 indra/llcommon/llpreprocessor.h | 0 indra/llcommon/llpriqueuemap.h | 0 indra/llcommon/llprocess.cpp | 0 indra/llcommon/llprocess.h | 0 indra/llcommon/llprocessor.cpp | 0 indra/llcommon/llprocessor.h | 0 indra/llcommon/llptrto.cpp | 0 indra/llcommon/llptrto.h | 0 indra/llcommon/llqueuedthread.cpp | 0 indra/llcommon/llqueuedthread.h | 0 indra/llcommon/llrand.cpp | 0 indra/llcommon/llrand.h | 0 indra/llcommon/llrefcount.cpp | 0 indra/llcommon/llrefcount.h | 0 indra/llcommon/llregistry.h | 0 indra/llcommon/llrun.cpp | 0 indra/llcommon/llrun.h | 0 indra/llcommon/llsafehandle.h | 0 indra/llcommon/llsd.cpp | 0 indra/llcommon/llsd.h | 0 indra/llcommon/llsdparam.cpp | 0 indra/llcommon/llsdparam.h | 0 indra/llcommon/llsdserialize.cpp | 0 indra/llcommon/llsdserialize.h | 0 indra/llcommon/llsdserialize_xml.cpp | 0 indra/llcommon/llsdserialize_xml.h | 0 indra/llcommon/llsdutil.cpp | 0 indra/llcommon/llsdutil.h | 0 indra/llcommon/llsimplehash.h | 0 indra/llcommon/llsingleton.cpp | 0 indra/llcommon/llsingleton.h | 0 indra/llcommon/llsmoothstep.h | 0 indra/llcommon/llstacktrace.cpp | 0 indra/llcommon/llstacktrace.h | 0 indra/llcommon/llstl.h | 0 indra/llcommon/llstreamqueue.cpp | 0 indra/llcommon/llstreamqueue.h | 0 indra/llcommon/llstreamtools.cpp | 0 indra/llcommon/llstreamtools.h | 0 indra/llcommon/llstrider.h | 0 indra/llcommon/llstring.cpp | 0 indra/llcommon/llstring.h | 0 indra/llcommon/llstringtable.cpp | 0 indra/llcommon/llstringtable.h | 0 indra/llcommon/llsys.cpp | 0 indra/llcommon/llsys.h | 0 indra/llcommon/llthread.cpp | 0 indra/llcommon/llthread.h | 0 indra/llcommon/llthreadsafequeue.cpp | 0 indra/llcommon/llthreadsafequeue.h | 0 indra/llcommon/lltimer.cpp | 0 indra/llcommon/lltimer.h | 0 indra/llcommon/lltreeiterators.h | 0 indra/llcommon/lluri.cpp | 0 indra/llcommon/lluri.h | 0 indra/llcommon/lluuid.cpp | 0 indra/llcommon/lluuid.h | 0 indra/llcommon/llworkerthread.cpp | 0 indra/llcommon/llworkerthread.h | 0 indra/llcommon/stdtypes.h | 0 indra/llcommon/stringize.h | 0 indra/llcommon/tests/StringVec.h | 0 indra/llcommon/tests/bitpack_test.cpp | 0 indra/llcommon/tests/commonmisc_test.cpp | 0 indra/llcommon/tests/listener.h | 0 indra/llcommon/tests/llallocator_heap_profile_test.cpp | 0 indra/llcommon/tests/llallocator_test.cpp | 0 indra/llcommon/tests/llbase64_test.cpp | 0 indra/llcommon/tests/lldate_test.cpp | 0 indra/llcommon/tests/lldependencies_test.cpp | 0 indra/llcommon/tests/llerror_test.cpp | 0 indra/llcommon/tests/lleventcoro_test.cpp | 0 indra/llcommon/tests/lleventdispatcher_test.cpp | 0 indra/llcommon/tests/lleventfilter_test.cpp | 0 indra/llcommon/tests/llframetimer_test.cpp | 0 indra/llcommon/tests/llinstancetracker_test.cpp | 0 indra/llcommon/tests/lllazy_test.cpp | 0 indra/llcommon/tests/llleap_test.cpp | 0 indra/llcommon/tests/llmemtype_test.cpp | 0 indra/llcommon/tests/llprocess_test.cpp | 0 indra/llcommon/tests/llprocessor_test.cpp | 0 indra/llcommon/tests/llrand_test.cpp | 0 indra/llcommon/tests/llsdserialize_test.cpp | 0 indra/llcommon/tests/llsingleton_test.cpp | 0 indra/llcommon/tests/llstreamqueue_test.cpp | 0 indra/llcommon/tests/llstring_test.cpp | 0 indra/llcommon/tests/lltreeiterators_test.cpp | 0 indra/llcommon/tests/lluri_test.cpp | 0 indra/llcommon/tests/stringize_test.cpp | 0 indra/llcommon/tests/wrapllerrs.h | 0 indra/llcommon/timer.h | 0 indra/llcommon/timing.cpp | 0 indra/llcommon/u64.cpp | 0 indra/llcommon/u64.h | 0 204 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 indra/llcommon/CMakeLists.txt mode change 100755 => 100644 indra/llcommon/ctype_workaround.h mode change 100755 => 100644 indra/llcommon/fix_macros.h mode change 100755 => 100644 indra/llcommon/indra_constants.cpp mode change 100755 => 100644 indra/llcommon/indra_constants.h mode change 100755 => 100644 indra/llcommon/is_approx_equal_fraction.h mode change 100755 => 100644 indra/llcommon/linden_common.h mode change 100755 => 100644 indra/llcommon/llallocator.cpp mode change 100755 => 100644 indra/llcommon/llallocator.h mode change 100755 => 100644 indra/llcommon/llallocator_heap_profile.cpp mode change 100755 => 100644 indra/llcommon/llallocator_heap_profile.h mode change 100755 => 100644 indra/llcommon/llapp.cpp mode change 100755 => 100644 indra/llcommon/llapp.h mode change 100755 => 100644 indra/llcommon/llapr.cpp mode change 100755 => 100644 indra/llcommon/llapr.h mode change 100755 => 100644 indra/llcommon/llassettype.cpp mode change 100755 => 100644 indra/llcommon/llassettype.h mode change 100755 => 100644 indra/llcommon/llbase32.cpp mode change 100755 => 100644 indra/llcommon/llbase32.h mode change 100755 => 100644 indra/llcommon/llbase64.cpp mode change 100755 => 100644 indra/llcommon/llbase64.h mode change 100755 => 100644 indra/llcommon/llbitpack.cpp mode change 100755 => 100644 indra/llcommon/llbitpack.h mode change 100755 => 100644 indra/llcommon/llboost.h mode change 100755 => 100644 indra/llcommon/llcommon.cpp mode change 100755 => 100644 indra/llcommon/llcommon.h mode change 100755 => 100644 indra/llcommon/llcommonutils.cpp mode change 100755 => 100644 indra/llcommon/llcommonutils.h mode change 100755 => 100644 indra/llcommon/llcoros.cpp mode change 100755 => 100644 indra/llcommon/llcoros.h mode change 100755 => 100644 indra/llcommon/llcrc.cpp mode change 100755 => 100644 indra/llcommon/llcrc.h mode change 100755 => 100644 indra/llcommon/llcriticaldamp.cpp mode change 100755 => 100644 indra/llcommon/llcriticaldamp.h mode change 100755 => 100644 indra/llcommon/lldate.cpp mode change 100755 => 100644 indra/llcommon/lldate.h mode change 100755 => 100644 indra/llcommon/lldefs.h mode change 100755 => 100644 indra/llcommon/lldependencies.cpp mode change 100755 => 100644 indra/llcommon/lldependencies.h mode change 100755 => 100644 indra/llcommon/lldepthstack.h mode change 100755 => 100644 indra/llcommon/lldictionary.cpp mode change 100755 => 100644 indra/llcommon/lldictionary.h mode change 100755 => 100644 indra/llcommon/lldoubledispatch.h mode change 100755 => 100644 indra/llcommon/llendianswizzle.h mode change 100755 => 100644 indra/llcommon/llerror.cpp mode change 100755 => 100644 indra/llcommon/llerror.h mode change 100755 => 100644 indra/llcommon/llerrorcontrol.h mode change 100755 => 100644 indra/llcommon/llerrorlegacy.h mode change 100755 => 100644 indra/llcommon/llerrorthread.cpp mode change 100755 => 100644 indra/llcommon/llerrorthread.h mode change 100755 => 100644 indra/llcommon/llevent.cpp mode change 100755 => 100644 indra/llcommon/llevent.h mode change 100755 => 100644 indra/llcommon/lleventapi.cpp mode change 100755 => 100644 indra/llcommon/lleventapi.h mode change 100755 => 100644 indra/llcommon/lleventcoro.cpp mode change 100755 => 100644 indra/llcommon/lleventcoro.h mode change 100755 => 100644 indra/llcommon/lleventdispatcher.cpp mode change 100755 => 100644 indra/llcommon/lleventdispatcher.h mode change 100755 => 100644 indra/llcommon/lleventemitter.h mode change 100755 => 100644 indra/llcommon/lleventfilter.cpp mode change 100755 => 100644 indra/llcommon/lleventfilter.h mode change 100755 => 100644 indra/llcommon/llevents.cpp mode change 100755 => 100644 indra/llcommon/llevents.h mode change 100755 => 100644 indra/llcommon/lleventtimer.cpp mode change 100755 => 100644 indra/llcommon/lleventtimer.h mode change 100755 => 100644 indra/llcommon/llfasttimer.cpp mode change 100755 => 100644 indra/llcommon/llfasttimer.h mode change 100755 => 100644 indra/llcommon/llfile.cpp mode change 100755 => 100644 indra/llcommon/llfile.h mode change 100755 => 100644 indra/llcommon/llfindlocale.cpp mode change 100755 => 100644 indra/llcommon/llfindlocale.h mode change 100755 => 100644 indra/llcommon/llfixedbuffer.cpp mode change 100755 => 100644 indra/llcommon/llfixedbuffer.h mode change 100755 => 100644 indra/llcommon/llformat.cpp mode change 100755 => 100644 indra/llcommon/llformat.h mode change 100755 => 100644 indra/llcommon/llframetimer.cpp mode change 100755 => 100644 indra/llcommon/llframetimer.h mode change 100755 => 100644 indra/llcommon/llhandle.h mode change 100755 => 100644 indra/llcommon/llhash.h mode change 100755 => 100644 indra/llcommon/llheartbeat.cpp mode change 100755 => 100644 indra/llcommon/llheartbeat.h mode change 100755 => 100644 indra/llcommon/llindexedvector.h mode change 100755 => 100644 indra/llcommon/llinitparam.cpp mode change 100755 => 100644 indra/llcommon/llinitparam.h mode change 100755 => 100644 indra/llcommon/llinstancetracker.cpp mode change 100755 => 100644 indra/llcommon/llinstancetracker.h mode change 100755 => 100644 indra/llcommon/llkeythrottle.h mode change 100755 => 100644 indra/llcommon/llkeyusetracker.h mode change 100755 => 100644 indra/llcommon/llleap.cpp mode change 100755 => 100644 indra/llcommon/llleap.h mode change 100755 => 100644 indra/llcommon/llleaplistener.cpp mode change 100755 => 100644 indra/llcommon/llleaplistener.h mode change 100755 => 100644 indra/llcommon/lllistenerwrapper.h mode change 100755 => 100644 indra/llcommon/llliveappconfig.cpp mode change 100755 => 100644 indra/llcommon/llliveappconfig.h mode change 100755 => 100644 indra/llcommon/lllivefile.cpp mode change 100755 => 100644 indra/llcommon/lllivefile.h mode change 100755 => 100644 indra/llcommon/llmd5.cpp mode change 100755 => 100644 indra/llcommon/llmd5.h mode change 100755 => 100644 indra/llcommon/llmemory.cpp mode change 100755 => 100644 indra/llcommon/llmemory.h mode change 100755 => 100644 indra/llcommon/llmemorystream.cpp mode change 100755 => 100644 indra/llcommon/llmemorystream.h mode change 100755 => 100644 indra/llcommon/llmetricperformancetester.cpp mode change 100755 => 100644 indra/llcommon/llmetricperformancetester.h mode change 100755 => 100644 indra/llcommon/llmetrics.cpp mode change 100755 => 100644 indra/llcommon/llmetrics.h mode change 100755 => 100644 indra/llcommon/llmortician.cpp mode change 100755 => 100644 indra/llcommon/llmortician.h mode change 100755 => 100644 indra/llcommon/llpointer.h mode change 100755 => 100644 indra/llcommon/llpreprocessor.h mode change 100755 => 100644 indra/llcommon/llpriqueuemap.h mode change 100755 => 100644 indra/llcommon/llprocess.cpp mode change 100755 => 100644 indra/llcommon/llprocess.h mode change 100755 => 100644 indra/llcommon/llprocessor.cpp mode change 100755 => 100644 indra/llcommon/llprocessor.h mode change 100755 => 100644 indra/llcommon/llptrto.cpp mode change 100755 => 100644 indra/llcommon/llptrto.h mode change 100755 => 100644 indra/llcommon/llqueuedthread.cpp mode change 100755 => 100644 indra/llcommon/llqueuedthread.h mode change 100755 => 100644 indra/llcommon/llrand.cpp mode change 100755 => 100644 indra/llcommon/llrand.h mode change 100755 => 100644 indra/llcommon/llrefcount.cpp mode change 100755 => 100644 indra/llcommon/llrefcount.h mode change 100755 => 100644 indra/llcommon/llregistry.h mode change 100755 => 100644 indra/llcommon/llrun.cpp mode change 100755 => 100644 indra/llcommon/llrun.h mode change 100755 => 100644 indra/llcommon/llsafehandle.h mode change 100755 => 100644 indra/llcommon/llsd.cpp mode change 100755 => 100644 indra/llcommon/llsd.h mode change 100755 => 100644 indra/llcommon/llsdparam.cpp mode change 100755 => 100644 indra/llcommon/llsdparam.h mode change 100755 => 100644 indra/llcommon/llsdserialize.cpp mode change 100755 => 100644 indra/llcommon/llsdserialize.h mode change 100755 => 100644 indra/llcommon/llsdserialize_xml.cpp mode change 100755 => 100644 indra/llcommon/llsdserialize_xml.h mode change 100755 => 100644 indra/llcommon/llsdutil.cpp mode change 100755 => 100644 indra/llcommon/llsdutil.h mode change 100755 => 100644 indra/llcommon/llsimplehash.h mode change 100755 => 100644 indra/llcommon/llsingleton.cpp mode change 100755 => 100644 indra/llcommon/llsingleton.h mode change 100755 => 100644 indra/llcommon/llsmoothstep.h mode change 100755 => 100644 indra/llcommon/llstacktrace.cpp mode change 100755 => 100644 indra/llcommon/llstacktrace.h mode change 100755 => 100644 indra/llcommon/llstl.h mode change 100755 => 100644 indra/llcommon/llstreamqueue.cpp mode change 100755 => 100644 indra/llcommon/llstreamqueue.h mode change 100755 => 100644 indra/llcommon/llstreamtools.cpp mode change 100755 => 100644 indra/llcommon/llstreamtools.h mode change 100755 => 100644 indra/llcommon/llstrider.h mode change 100755 => 100644 indra/llcommon/llstring.cpp mode change 100755 => 100644 indra/llcommon/llstring.h mode change 100755 => 100644 indra/llcommon/llstringtable.cpp mode change 100755 => 100644 indra/llcommon/llstringtable.h mode change 100755 => 100644 indra/llcommon/llsys.cpp mode change 100755 => 100644 indra/llcommon/llsys.h mode change 100755 => 100644 indra/llcommon/llthread.cpp mode change 100755 => 100644 indra/llcommon/llthread.h mode change 100755 => 100644 indra/llcommon/llthreadsafequeue.cpp mode change 100755 => 100644 indra/llcommon/llthreadsafequeue.h mode change 100755 => 100644 indra/llcommon/lltimer.cpp mode change 100755 => 100644 indra/llcommon/lltimer.h mode change 100755 => 100644 indra/llcommon/lltreeiterators.h mode change 100755 => 100644 indra/llcommon/lluri.cpp mode change 100755 => 100644 indra/llcommon/lluri.h mode change 100755 => 100644 indra/llcommon/lluuid.cpp mode change 100755 => 100644 indra/llcommon/lluuid.h mode change 100755 => 100644 indra/llcommon/llworkerthread.cpp mode change 100755 => 100644 indra/llcommon/llworkerthread.h mode change 100755 => 100644 indra/llcommon/stdtypes.h mode change 100755 => 100644 indra/llcommon/stringize.h mode change 100755 => 100644 indra/llcommon/tests/StringVec.h mode change 100755 => 100644 indra/llcommon/tests/bitpack_test.cpp mode change 100755 => 100644 indra/llcommon/tests/commonmisc_test.cpp mode change 100755 => 100644 indra/llcommon/tests/listener.h mode change 100755 => 100644 indra/llcommon/tests/llallocator_heap_profile_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llallocator_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llbase64_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lldate_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lldependencies_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llerror_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lleventcoro_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lleventdispatcher_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lleventfilter_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llframetimer_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llinstancetracker_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lllazy_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llleap_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llmemtype_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llprocess_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llprocessor_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llrand_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llsdserialize_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llsingleton_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llstreamqueue_test.cpp mode change 100755 => 100644 indra/llcommon/tests/llstring_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lltreeiterators_test.cpp mode change 100755 => 100644 indra/llcommon/tests/lluri_test.cpp mode change 100755 => 100644 indra/llcommon/tests/stringize_test.cpp mode change 100755 => 100644 indra/llcommon/tests/wrapllerrs.h mode change 100755 => 100644 indra/llcommon/timer.h mode change 100755 => 100644 indra/llcommon/timing.cpp mode change 100755 => 100644 indra/llcommon/u64.cpp mode change 100755 => 100644 indra/llcommon/u64.h (limited to 'indra/llcommon') diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/indra/llcommon/ctype_workaround.h b/indra/llcommon/ctype_workaround.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/fix_macros.h b/indra/llcommon/fix_macros.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/is_approx_equal_fraction.h b/indra/llcommon/is_approx_equal_fraction.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/linden_common.h b/indra/llcommon/linden_common.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llallocator.cpp b/indra/llcommon/llallocator.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llallocator.h b/indra/llcommon/llallocator.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llallocator_heap_profile.cpp b/indra/llcommon/llallocator_heap_profile.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llallocator_heap_profile.h b/indra/llcommon/llallocator_heap_profile.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llassettype.h b/indra/llcommon/llassettype.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbase32.cpp b/indra/llcommon/llbase32.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbase32.h b/indra/llcommon/llbase32.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbase64.cpp b/indra/llcommon/llbase64.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbase64.h b/indra/llcommon/llbase64.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbitpack.cpp b/indra/llcommon/llbitpack.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llbitpack.h b/indra/llcommon/llbitpack.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llboost.h b/indra/llcommon/llboost.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcommon.cpp b/indra/llcommon/llcommon.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcommon.h b/indra/llcommon/llcommon.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcommonutils.cpp b/indra/llcommon/llcommonutils.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcommonutils.h b/indra/llcommon/llcommonutils.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcrc.cpp b/indra/llcommon/llcrc.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcrc.h b/indra/llcommon/llcrc.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcriticaldamp.cpp b/indra/llcommon/llcriticaldamp.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llcriticaldamp.h b/indra/llcommon/llcriticaldamp.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldate.h b/indra/llcommon/lldate.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldefs.h b/indra/llcommon/lldefs.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldependencies.cpp b/indra/llcommon/lldependencies.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldependencies.h b/indra/llcommon/lldependencies.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldepthstack.h b/indra/llcommon/lldepthstack.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldictionary.cpp b/indra/llcommon/lldictionary.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldictionary.h b/indra/llcommon/lldictionary.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lldoubledispatch.h b/indra/llcommon/lldoubledispatch.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llendianswizzle.h b/indra/llcommon/llendianswizzle.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerrorcontrol.h b/indra/llcommon/llerrorcontrol.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerrorlegacy.h b/indra/llcommon/llerrorlegacy.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerrorthread.cpp b/indra/llcommon/llerrorthread.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llerrorthread.h b/indra/llcommon/llerrorthread.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llevent.cpp b/indra/llcommon/llevent.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llevent.h b/indra/llcommon/llevent.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventapi.cpp b/indra/llcommon/lleventapi.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventapi.h b/indra/llcommon/lleventapi.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventdispatcher.cpp b/indra/llcommon/lleventdispatcher.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventdispatcher.h b/indra/llcommon/lleventdispatcher.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventemitter.h b/indra/llcommon/lleventemitter.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventfilter.cpp b/indra/llcommon/lleventfilter.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventtimer.cpp b/indra/llcommon/lleventtimer.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lleventtimer.h b/indra/llcommon/lleventtimer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfasttimer.cpp b/indra/llcommon/llfasttimer.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfile.h b/indra/llcommon/llfile.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfindlocale.cpp b/indra/llcommon/llfindlocale.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfindlocale.h b/indra/llcommon/llfindlocale.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfixedbuffer.cpp b/indra/llcommon/llfixedbuffer.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llfixedbuffer.h b/indra/llcommon/llfixedbuffer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llformat.cpp b/indra/llcommon/llformat.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llformat.h b/indra/llcommon/llformat.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llframetimer.cpp b/indra/llcommon/llframetimer.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llframetimer.h b/indra/llcommon/llframetimer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llhandle.h b/indra/llcommon/llhandle.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llhash.h b/indra/llcommon/llhash.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llheartbeat.cpp b/indra/llcommon/llheartbeat.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llheartbeat.h b/indra/llcommon/llheartbeat.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llindexedvector.h b/indra/llcommon/llindexedvector.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llinitparam.cpp b/indra/llcommon/llinitparam.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llinstancetracker.cpp b/indra/llcommon/llinstancetracker.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llkeythrottle.h b/indra/llcommon/llkeythrottle.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llkeyusetracker.h b/indra/llcommon/llkeyusetracker.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llleap.cpp b/indra/llcommon/llleap.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llleap.h b/indra/llcommon/llleap.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llleaplistener.cpp b/indra/llcommon/llleaplistener.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llleaplistener.h b/indra/llcommon/llleaplistener.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lllistenerwrapper.h b/indra/llcommon/lllistenerwrapper.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llliveappconfig.cpp b/indra/llcommon/llliveappconfig.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llliveappconfig.h b/indra/llcommon/llliveappconfig.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lllivefile.cpp b/indra/llcommon/lllivefile.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lllivefile.h b/indra/llcommon/lllivefile.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmd5.cpp b/indra/llcommon/llmd5.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmd5.h b/indra/llcommon/llmd5.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmemorystream.cpp b/indra/llcommon/llmemorystream.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmemorystream.h b/indra/llcommon/llmemorystream.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmetricperformancetester.cpp b/indra/llcommon/llmetricperformancetester.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmetricperformancetester.h b/indra/llcommon/llmetricperformancetester.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmetrics.cpp b/indra/llcommon/llmetrics.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmetrics.h b/indra/llcommon/llmetrics.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmortician.cpp b/indra/llcommon/llmortician.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llmortician.h b/indra/llcommon/llmortician.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llpointer.h b/indra/llcommon/llpointer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llpriqueuemap.h b/indra/llcommon/llpriqueuemap.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llprocess.h b/indra/llcommon/llprocess.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llprocessor.cpp b/indra/llcommon/llprocessor.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llprocessor.h b/indra/llcommon/llprocessor.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llptrto.cpp b/indra/llcommon/llptrto.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llptrto.h b/indra/llcommon/llptrto.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llqueuedthread.h b/indra/llcommon/llqueuedthread.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrand.cpp b/indra/llcommon/llrand.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrand.h b/indra/llcommon/llrand.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrefcount.cpp b/indra/llcommon/llrefcount.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrefcount.h b/indra/llcommon/llrefcount.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llregistry.h b/indra/llcommon/llregistry.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrun.cpp b/indra/llcommon/llrun.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llrun.h b/indra/llcommon/llrun.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsafehandle.h b/indra/llcommon/llsafehandle.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsd.h b/indra/llcommon/llsd.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdparam.cpp b/indra/llcommon/llsdparam.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdparam.h b/indra/llcommon/llsdparam.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdserialize.h b/indra/llcommon/llsdserialize.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdserialize_xml.cpp b/indra/llcommon/llsdserialize_xml.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdserialize_xml.h b/indra/llcommon/llsdserialize_xml.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsimplehash.h b/indra/llcommon/llsimplehash.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsingleton.cpp b/indra/llcommon/llsingleton.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsingleton.h b/indra/llcommon/llsingleton.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsmoothstep.h b/indra/llcommon/llsmoothstep.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstacktrace.cpp b/indra/llcommon/llstacktrace.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstacktrace.h b/indra/llcommon/llstacktrace.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstl.h b/indra/llcommon/llstl.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstreamqueue.cpp b/indra/llcommon/llstreamqueue.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstreamqueue.h b/indra/llcommon/llstreamqueue.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstreamtools.cpp b/indra/llcommon/llstreamtools.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstreamtools.h b/indra/llcommon/llstreamtools.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstrider.h b/indra/llcommon/llstrider.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstringtable.cpp b/indra/llcommon/llstringtable.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llstringtable.h b/indra/llcommon/llstringtable.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llthreadsafequeue.cpp b/indra/llcommon/llthreadsafequeue.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llthreadsafequeue.h b/indra/llcommon/llthreadsafequeue.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lltimer.cpp b/indra/llcommon/lltimer.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lltimer.h b/indra/llcommon/lltimer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lltreeiterators.h b/indra/llcommon/lltreeiterators.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lluri.h b/indra/llcommon/lluri.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/lluuid.h b/indra/llcommon/lluuid.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/llworkerthread.cpp b/indra/llcommon/llworkerthread.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/llworkerthread.h b/indra/llcommon/llworkerthread.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/stdtypes.h b/indra/llcommon/stdtypes.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/stringize.h b/indra/llcommon/stringize.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/StringVec.h b/indra/llcommon/tests/StringVec.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/bitpack_test.cpp b/indra/llcommon/tests/bitpack_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/commonmisc_test.cpp b/indra/llcommon/tests/commonmisc_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/listener.h b/indra/llcommon/tests/listener.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llallocator_heap_profile_test.cpp b/indra/llcommon/tests/llallocator_heap_profile_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llallocator_test.cpp b/indra/llcommon/tests/llallocator_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llbase64_test.cpp b/indra/llcommon/tests/llbase64_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lldate_test.cpp b/indra/llcommon/tests/lldate_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lldependencies_test.cpp b/indra/llcommon/tests/lldependencies_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llerror_test.cpp b/indra/llcommon/tests/llerror_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lleventcoro_test.cpp b/indra/llcommon/tests/lleventcoro_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lleventdispatcher_test.cpp b/indra/llcommon/tests/lleventdispatcher_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lleventfilter_test.cpp b/indra/llcommon/tests/lleventfilter_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llframetimer_test.cpp b/indra/llcommon/tests/llframetimer_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llinstancetracker_test.cpp b/indra/llcommon/tests/llinstancetracker_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lllazy_test.cpp b/indra/llcommon/tests/lllazy_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llleap_test.cpp b/indra/llcommon/tests/llleap_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llmemtype_test.cpp b/indra/llcommon/tests/llmemtype_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llprocess_test.cpp b/indra/llcommon/tests/llprocess_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llprocessor_test.cpp b/indra/llcommon/tests/llprocessor_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llrand_test.cpp b/indra/llcommon/tests/llrand_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llsdserialize_test.cpp b/indra/llcommon/tests/llsdserialize_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llsingleton_test.cpp b/indra/llcommon/tests/llsingleton_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llstreamqueue_test.cpp b/indra/llcommon/tests/llstreamqueue_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/llstring_test.cpp b/indra/llcommon/tests/llstring_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lltreeiterators_test.cpp b/indra/llcommon/tests/lltreeiterators_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/lluri_test.cpp b/indra/llcommon/tests/lluri_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/stringize_test.cpp b/indra/llcommon/tests/stringize_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/tests/wrapllerrs.h b/indra/llcommon/tests/wrapllerrs.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/timer.h b/indra/llcommon/timer.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/timing.cpp b/indra/llcommon/timing.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/u64.cpp b/indra/llcommon/u64.cpp old mode 100755 new mode 100644 diff --git a/indra/llcommon/u64.h b/indra/llcommon/u64.h old mode 100755 new mode 100644 -- cgit v1.2.3 From d4cb7f450d3173a3b40d352ec52f8d82036266b2 Mon Sep 17 00:00:00 2001 From: ruslantproductengine Date: Fri, 19 Feb 2016 18:03:34 +0200 Subject: MAINT-5022 [QuickGraphics] Materials should not be applied to simple imposters Fixe based on that texture with assetd id: "3b39cc01-c2d1-e194-1181-e4404978b20c" will exist on data server. --- indra/llcommon/indra_constants.cpp | 2 ++ indra/llcommon/indra_constants.h | 2 ++ 2 files changed, 4 insertions(+) (limited to 'indra/llcommon') diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp index f3989ee1d0..90866631fe 100755 --- a/indra/llcommon/indra_constants.cpp +++ b/indra/llcommon/indra_constants.cpp @@ -67,3 +67,5 @@ const LLUUID TERRAIN_MOUNTAIN_DETAIL ("303cd381-8560-7579-23f1-f0a880799740"); / const LLUUID TERRAIN_ROCK_DETAIL ("53a2f406-4895-1d13-d541-d2e3b86bc19c"); // VIEWER const LLUUID DEFAULT_WATER_NORMAL ("822ded49-9a6c-f61c-cb89-6df54f42cdf4"); // VIEWER + +const LLUUID IMG_BLACK_SQUARE_MALEVICH ("3b39cc01-c2d1-e194-1181-e4404978b20c"); // On dataserver diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index 02f063f5e8..6a9e777e69 100755 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -205,6 +205,8 @@ LL_COMMON_API extern const LLUUID TERRAIN_ROCK_DETAIL; LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL; +LL_COMMON_API extern const LLUUID IMG_BLACK_SQUARE_MALEVICH; + // radius within which a chat message is fully audible const F32 CHAT_NORMAL_RADIUS = 20.f; -- cgit v1.2.3 From ded162be6084e77dd4d4cb13a62d6e2303507dac Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 22 Mar 2016 16:30:59 -0400 Subject: fix merge error for specular rendering on impostors --- indra/llcommon/indra_constants.cpp | 2 +- indra/llcommon/indra_constants.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp index 90866631fe..1d094cd4f4 100644 --- a/indra/llcommon/indra_constants.cpp +++ b/indra/llcommon/indra_constants.cpp @@ -68,4 +68,4 @@ const LLUUID TERRAIN_ROCK_DETAIL ("53a2f406-4895-1d13-d541-d2e3b86bc19c"); // V const LLUUID DEFAULT_WATER_NORMAL ("822ded49-9a6c-f61c-cb89-6df54f42cdf4"); // VIEWER -const LLUUID IMG_BLACK_SQUARE_MALEVICH ("3b39cc01-c2d1-e194-1181-e4404978b20c"); // On dataserver +const LLUUID IMG_BLACK_SQUARE ("3b39cc01-c2d1-e194-1181-e4404978b20c"); // On dataserver diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index 6a9e777e69..6d39aef32e 100644 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -205,7 +205,7 @@ LL_COMMON_API extern const LLUUID TERRAIN_ROCK_DETAIL; LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL; -LL_COMMON_API extern const LLUUID IMG_BLACK_SQUARE_MALEVICH; +LL_COMMON_API extern const LLUUID IMG_BLACK_SQUARE; // radius within which a chat message is fully audible -- cgit v1.2.3 From ecdb190d70a81294eebde7e53cf6a92139ba53d5 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 20 Apr 2016 11:52:00 -0400 Subject: MAINT-6322 fix merge error that prevented crash dumps from being located for upload (and add better logging) --- indra/llcommon/llapp.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp index 5a40845e7d..eb0699ad41 100644 --- a/indra/llcommon/llapp.cpp +++ b/indra/llcommon/llapp.cpp @@ -929,7 +929,7 @@ bool unix_minidump_callback(const google_breakpad::MinidumpDescriptor& minidump_ strncpy(path, minidump_desc.path(), remaining); - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; LLApp::runErrorHandler(); #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -975,7 +975,7 @@ bool unix_post_minidump_callback(const char *dump_dir, strncpy(path, ".dmp", remaining); } - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; LLApp::runErrorHandler(); #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -1019,7 +1019,7 @@ bool windows_post_minidump_callback(const wchar_t* dump_path, strncpy(path, ".dmp", remaining); } - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. //OSMessageBox("Attach Debugger Now", "Error", OSMB_OK); // *TODO: Translate the signals/exceptions into cross-platform stuff -- cgit v1.2.3 From ddd476c90c99c75a4add6c00243a90e84e025402 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 20 Apr 2016 11:52:00 -0400 Subject: MAINT-6322 fix merge error that prevented crash dumps from being located for upload (and add better logging) --- indra/llcommon/llapp.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp index 5a40845e7d..eb0699ad41 100755 --- a/indra/llcommon/llapp.cpp +++ b/indra/llcommon/llapp.cpp @@ -929,7 +929,7 @@ bool unix_minidump_callback(const google_breakpad::MinidumpDescriptor& minidump_ strncpy(path, minidump_desc.path(), remaining); - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; LLApp::runErrorHandler(); #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -975,7 +975,7 @@ bool unix_post_minidump_callback(const char *dump_dir, strncpy(path, ".dmp", remaining); } - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; LLApp::runErrorHandler(); #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -1019,7 +1019,7 @@ bool windows_post_minidump_callback(const wchar_t* dump_path, strncpy(path, ".dmp", remaining); } - LL_INFOS() << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; + LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. //OSMessageBox("Attach Debugger Now", "Error", OSMB_OK); // *TODO: Translate the signals/exceptions into cross-platform stuff -- cgit v1.2.3 From d96004e4af162a6338029db8ea2bbc914c072c19 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Wed, 20 Apr 2016 10:21:35 -0700 Subject: MAINT-6336: Crasher showing up in voice was a Bound Listener that should have been a Temp Bound listener. --- indra/llcommon/lleventfilter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h index e822a664f5..8e01326823 100755 --- a/indra/llcommon/lleventfilter.h +++ b/indra/llcommon/lleventfilter.h @@ -181,7 +181,7 @@ protected: private: bool tick(const LLSD&); - LLBoundListener mMainloop; + LLTempBoundListener mMainloop; Action mAction; }; -- cgit v1.2.3 From 503dc6ee656bdf579107ff9712ae8e960dd91100 Mon Sep 17 00:00:00 2001 From: ruslantproductengine Date: Thu, 21 Apr 2016 12:47:49 +0300 Subject: MAINT-6317 [QuickGraphics-RC] Some rigged mesh attachments render fully on jellybaby avatars when ALM is enabled FIXED - remove global identifier for the black texture - add black texture 2x2x3 localy on apllication startup - add special flag to LLViewerFetchedTexture for protect from removing --- indra/llcommon/indra_constants.cpp | 1 - indra/llcommon/indra_constants.h | 2 -- 2 files changed, 3 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp index 1d094cd4f4..60721977cd 100644 --- a/indra/llcommon/indra_constants.cpp +++ b/indra/llcommon/indra_constants.cpp @@ -68,4 +68,3 @@ const LLUUID TERRAIN_ROCK_DETAIL ("53a2f406-4895-1d13-d541-d2e3b86bc19c"); // V const LLUUID DEFAULT_WATER_NORMAL ("822ded49-9a6c-f61c-cb89-6df54f42cdf4"); // VIEWER -const LLUUID IMG_BLACK_SQUARE ("3b39cc01-c2d1-e194-1181-e4404978b20c"); // On dataserver diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index 6d39aef32e..02f063f5e8 100644 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -205,8 +205,6 @@ LL_COMMON_API extern const LLUUID TERRAIN_ROCK_DETAIL; LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL; -LL_COMMON_API extern const LLUUID IMG_BLACK_SQUARE; - // radius within which a chat message is fully audible const F32 CHAT_NORMAL_RADIUS = 20.f; -- cgit v1.2.3 From 899489ae0a4bc4eb187e7813e338b937384a1866 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Fri, 22 Apr 2016 12:07:27 -0700 Subject: MAINT-6336: Centralize waiting on event pump with a timeout. Shorten the lifespan of a timeout event pump lifespan to be no longer than necessary. Change all references to the LLEventTimer to instead uses the centralized version. --- indra/llcommon/lleventcoro.cpp | 9 +++++++++ indra/llcommon/lleventcoro.h | 2 ++ indra/llcommon/lleventfilter.cpp | 4 ++-- indra/llcommon/lleventfilter.h | 3 +++ 4 files changed, 16 insertions(+), 2 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp index 578a2b62c8..44291eb711 100755 --- a/indra/llcommon/lleventcoro.cpp +++ b/indra/llcommon/lleventcoro.cpp @@ -229,6 +229,15 @@ LLSD llcoro::postAndSuspend(const LLSD& event, const LLEventPumpOrPumpName& requ return value; } +LLSD llcoro::suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& pump, F32 timeoutin, const LLSD &timeoutResult) +{ + LLEventTimeout timeoutPump(pump); + + timeoutPump.eventAfter(timeoutin, timeoutResult); + return llcoro::suspendUntilEventOn(timeoutPump); + +} + namespace { diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h index 2105faf861..19c68e1f35 100755 --- a/indra/llcommon/lleventcoro.h +++ b/indra/llcommon/lleventcoro.h @@ -147,6 +147,8 @@ LLSD suspendUntilEventOn(const LLEventPumpOrPumpName& pump) return postAndSuspend(LLSD(), LLEventPumpOrPumpName(), pump); } +LLSD suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& pump, F32 timeoutin, const LLSD &timeoutResult); + } // namespace llcoro /// return type for two-pump variant of suspendUntilEventOn() diff --git a/indra/llcommon/lleventfilter.cpp b/indra/llcommon/lleventfilter.cpp index d36a107254..64ab58adcd 100755 --- a/indra/llcommon/lleventfilter.cpp +++ b/indra/llcommon/lleventfilter.cpp @@ -39,9 +39,9 @@ #include "llsdutil.h" // llsd_matches() LLEventFilter::LLEventFilter(LLEventPump& source, const std::string& name, bool tweak): - LLEventStream(name, tweak) + LLEventStream(name, tweak), + mSource(source.listen(getName(), boost::bind(&LLEventFilter::post, this, _1))) { - source.listen(getName(), boost::bind(&LLEventFilter::post, this, _1)); } LLEventMatching::LLEventMatching(const LLSD& pattern): diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h index 8e01326823..15bac5fd73 100755 --- a/indra/llcommon/lleventfilter.h +++ b/indra/llcommon/lleventfilter.h @@ -49,6 +49,9 @@ public: /// Post an event to all listeners virtual bool post(const LLSD& event) = 0; + +private: + LLTempBoundListener mSource; }; /** -- cgit v1.2.3 From dd2311b993d137c538ca57b4360669db6d7fbfa0 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Tue, 26 Apr 2016 11:56:25 -0700 Subject: MAINT-6336: Put the timeout upstream of the suspending pump and fire the timeout it. Also some cleanup on LLSD construction in vivox. --- indra/llcommon/lleventcoro.cpp | 21 +++++++++++++++++---- indra/llcommon/lleventcoro.h | 5 ++++- indra/llcommon/lleventfilter.h | 14 +++++++++++++- indra/llcommon/llevents.h | 6 ++++++ 4 files changed, 40 insertions(+), 6 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp index 44291eb711..c8c43dc334 100755 --- a/indra/llcommon/lleventcoro.cpp +++ b/indra/llcommon/lleventcoro.cpp @@ -229,13 +229,26 @@ LLSD llcoro::postAndSuspend(const LLSD& event, const LLEventPumpOrPumpName& requ return value; } -LLSD llcoro::suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& pump, F32 timeoutin, const LLSD &timeoutResult) +LLSD llcoro::suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& suspendPumpOrName, + F32 timeoutin, const LLSD &timeoutResult) { - LLEventTimeout timeoutPump(pump); + /** + * The timeout pump is attached upstream of of the waiting pump and will + * pass the timeout event through it. We CAN NOT attach downstream since + * doing so will cause the suspendPump to fire any waiting events immediately + * and they will be lost. This becomes especially problematic with the + * LLEventTimeout(pump) constructor which will also attempt to fire those + * events using the virtual listen_impl method in the not yet fully constructed + * timeoutPump. + */ + LLEventTimeout timeoutPump; + LLEventPump &suspendPump = suspendPumpOrName.getPump(); + + LLTempBoundListener timeoutListener = timeoutPump.listen(suspendPump.getName(), + boost::bind(&LLEventPump::post, &suspendPump, _1)); timeoutPump.eventAfter(timeoutin, timeoutResult); - return llcoro::suspendUntilEventOn(timeoutPump); - + return llcoro::suspendUntilEventOn(suspendPump); } namespace diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h index 19c68e1f35..87926c692d 100755 --- a/indra/llcommon/lleventcoro.h +++ b/indra/llcommon/lleventcoro.h @@ -147,7 +147,10 @@ LLSD suspendUntilEventOn(const LLEventPumpOrPumpName& pump) return postAndSuspend(LLSD(), LLEventPumpOrPumpName(), pump); } -LLSD suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& pump, F32 timeoutin, const LLSD &timeoutResult); +/// Suspend the coroutine until an event is fired on the identified pump +/// or the timeout duration has elapsed. If the timeout duration +/// elapses the specified LLSD is returned. +LLSD suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& suspendPumpOrName, F32 timeoutin, const LLSD &timeoutResult); } // namespace llcoro diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h index 15bac5fd73..66f3c14869 100755 --- a/indra/llcommon/lleventfilter.h +++ b/indra/llcommon/lleventfilter.h @@ -188,7 +188,19 @@ private: Action mAction; }; -/// Production implementation of LLEventTimoutBase +/** + * Production implementation of LLEventTimoutBase. + * + * @NOTE: Caution should be taken when using the LLEventTimeout(LLEventPump &) + * constructor to ensure that the upstream event pump is not an LLEventMaildrop + * or any other kind of store and forward pump which may have events outstanding. + * Using this constructor will cause the upstream event pump to fire any pending + * events and could result in the invocation of a virtual method before the timeout + * has been fully constructed. The timeout should instead be connected upstream + * from the event pump and attached using the listen method. + * See llcoro::suspendUntilEventOnWithTimeout() for an example. + */ + class LL_COMMON_API LLEventTimeout: public LLEventTimeoutBase { public: diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h index 6175329a9d..ba4fcd766e 100755 --- a/indra/llcommon/llevents.h +++ b/indra/llcommon/llevents.h @@ -616,6 +616,12 @@ public: * a queue. Subsequent attaching listeners will receive stored events from the queue * until a listener indicates that the event has been handled. In order to receive * multiple events from a mail drop the listener must disconnect and reconnect. + * + * @NOTE: When using an LLEventMailDrop (or LLEventQueue) with a LLEventTimeout or + * LLEventFilter attaching the filter downstream using Timeout's constructor will + * cause the MailDrop to discharge any of it's stored events. The timeout should + * instead be connected upstream using its listen() method. + * See llcoro::suspendUntilEventOnWithTimeout() for an example. */ class LL_COMMON_API LLEventMailDrop : public LLEventStream { -- cgit v1.2.3 From 66dd72459ae5ad17bfab622c71b2122233707dd4 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Tue, 26 Apr 2016 13:44:44 -0700 Subject: MAINT-6336: Initialize TempBoundListener with constructor --- indra/llcommon/lleventcoro.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp index c8c43dc334..2d5f964deb 100755 --- a/indra/llcommon/lleventcoro.cpp +++ b/indra/llcommon/lleventcoro.cpp @@ -244,8 +244,8 @@ LLSD llcoro::suspendUntilEventOnWithTimeout(const LLEventPumpOrPumpName& suspend LLEventTimeout timeoutPump; LLEventPump &suspendPump = suspendPumpOrName.getPump(); - LLTempBoundListener timeoutListener = timeoutPump.listen(suspendPump.getName(), - boost::bind(&LLEventPump::post, &suspendPump, _1)); + LLTempBoundListener timeoutListener(timeoutPump.listen(suspendPump.getName(), + boost::bind(&LLEventPump::post, &suspendPump, _1))); timeoutPump.eventAfter(timeoutin, timeoutResult); return llcoro::suspendUntilEventOn(suspendPump); -- cgit v1.2.3