Skip to content
Snippets Groups Projects
  1. Feb 18, 2015
  2. Feb 17, 2015
  3. Feb 16, 2015
  4. Feb 15, 2015
  5. Feb 14, 2015
  6. Feb 12, 2015
  7. Feb 11, 2015
  8. Feb 10, 2015
  9. Feb 09, 2015
  10. Jan 28, 2015
    • Nat Goodspeed's avatar
      MAINT-4744: Eliminate viewer dependency on (old) GNU libstdc++. · ae6440ee
      Nat Goodspeed authored
      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.
      ae6440ee
  11. Jan 27, 2015
  12. Jan 23, 2015
    • Nat Goodspeed's avatar
      Explain why LLHost::setHostByName() / getHostName() test skipped. · e79b1dfb
      Nat Goodspeed authored
      A skip() stating that we don't yet understand why the test fails is implicitly
      an open action item. This one isn't open. Save future developers the research.
      e79b1dfb
    • Nat Goodspeed's avatar
      Re-enable skipped test: evidently Windows APR libs CAN transcode. · 834a1f6a
      Nat Goodspeed authored
      I don't know at what point the skip() was introduced, but that test now passes
      even on Windows.
      834a1f6a
    • Nat Goodspeed's avatar
    • Nat Goodspeed's avatar
      Make MandatoryUpdateMachine use LLLoginInstance's LLNotificationsInterface. · c93648e3
      Nat Goodspeed authored
      LLLoginInstance has a test hook setNotificationsInterface(), used by
      lllogininstance_test.cpp to redirect notifications through a dummy
      LLNotificationsInterface implementation. Certain of LLLoginInstance's
      MandatoryUpdateMachine state classes need to post notifications too; but until
      now they directly called LLNotificationsUtil::add(). In the production viewer,
      this should (!) be the same as calling through LLLoginInstance::mNotifications
      -- but it broke two of the LLLoginInstance unit tests, so they were skipped.
      Since MandatoryUpdateMachine's constructor is already passed the invoking
      LLLoginInstance&, make it store the reference. Add MandatoryUpdateMachine::
      getNotificationsInterface(), which forwards to new LLLoginInstance::
      getNotificationsInterface(). Change LLNotificationsUtil::add() calls in
      MandatoryUpdateMachine state classes to call through mMachine's
      getNotificationInterface() instead.
      This allows us to remove #include "llnotificationsutil.h" from
      lllogininstance.cpp, also that #include plus stub LLNotificationsUtil::add()
      implementation from lllogininstance_test.cpp.
      Finally, it allows us to remove the skip() calls from the two unit tests.
      c93648e3
  13. Jan 22, 2015
  14. Jan 21, 2015
  15. Jan 19, 2015
Loading