Skip to content
Snippets Groups Projects
  1. Jan 15, 2019
  2. Sep 07, 2018
  3. Sep 05, 2018
  4. Aug 30, 2017
  5. Aug 29, 2017
  6. Feb 27, 2017
  7. Jun 30, 2016
    • Nat Goodspeed's avatar
      DRTVWR-418: Unify control flow through LLAppViewer across platforms. · 464a0df4
      Nat Goodspeed authored
      The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This
      makes sense -- but on Mac that structure was being subverted. The method
      called mainLoop() was in fact being called once per frame. There was
      initialization code in the method, which (on Mac) needed to be skipped with an
      already-initialized bool. There was a 'while' loop which (on Mac) needed to be
      turned into an 'if' instead so the method would return after every frame.
      
      Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer
      and LLCrashLogger. Document the fact that frame() returns true to mean "done."
      (This was always the case, but had to be inferred from the code.)
      
      Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free
      function it calls from runMainLoop() to pumpMainLoop(). Add comments to
      llappdelegate-objc.mm explaining (inferred) control flow.
      
      Change the Linux viewer main() and the Windows viewer WINMAIN() from a single
      LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true.
      
      Move initialization code from the top of LLAppViewer::frame() to the init()
      method, where it more properly belongs. Remove corresponding
      mMainLoopInitialized flag (and all references) from LLAppViewer.
      
      Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())')
      from LLAppViewer::frame() -- thus unindenting the whole body of the 'while'
      and causing many lines of apparent change. (Apologies to reviewers.)
      
      There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING,
      APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return
      value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know
      under what circumstances the state might transition to STOPPED during a
      frame() call, but I'm quite sure that if it does, we don't want to call
      frame() again. We only want a subsequent call if the state is RUNNING.
      
      Also rename mainLoop() method in LLCrashLogger subclasses
      LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's
      completely up to the frame() method whether to yield control; none of those in
      fact do. Honor protocol by returning true (frame() is done), even though each
      one's main() caller ignores the return value.
      
      In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol
      correctly anyway, returning wParam or 0 or 1 -- possibly because the return
      protocol was never explicitly documented. It should always return true: "I'm
      done, don't call me again."
      464a0df4
  8. May 06, 2016
  9. Apr 20, 2016
  10. Apr 13, 2016
  11. Mar 08, 2016
  12. Feb 25, 2016
  13. Jan 29, 2016
  14. Dec 16, 2015
  15. Nov 10, 2015
  16. Oct 14, 2015
  17. Sep 16, 2015
  18. Sep 15, 2015
  19. Jul 08, 2015
  20. Jun 29, 2015
    • Nat Goodspeed's avatar
      MAINT-4952: Use IntrusivePtr for BufferArray,HttpHeaders,HttpOptions. · 80d17b2d
      Nat Goodspeed authored
      Specifically, change the ptr_t typedefs for these LLCore classes to use
      IntrusivePtr rather than directly using boost::intrusive_ptr. This allows us
      to use a simple ptr_t(raw ptr) constructor rather than having to remember to
      code ptr_t(raw ptr, false) everywhere. In fact, the latter form is now invalid:
      remove the now-extraneous 'false' constructor parameters.
      80d17b2d
  21. Jun 17, 2015
  22. May 20, 2015
  23. Apr 30, 2015
  24. Apr 10, 2015
  25. Apr 07, 2015
  26. Apr 16, 2014
  27. Apr 15, 2014
  28. Apr 07, 2014
  29. Mar 26, 2014
  30. Mar 25, 2014
Loading