• Show log

    Commit

  • Hash : 21355643
    Author : Stefan Sperling
    Date : 2020-12-06T22:03:32

    fix crashes when the 'tog log' view reloads displayed data
    
    This reimplements log view reloading (Ctrl-L), logging of a parent
    path (Backspace), and the toggle to show commits on branches (B).
    
    The idea is to reuse the existing log view and change its state, instead
    of allocating a new view with a new state and replacing the existing view.
    
    Fixes a segfault that occurs when a parent path is logged with Backspace:
    
      tog tree -r got.git -c 0.44
      pick tog/tog.c
      'l'
      Backspace
      -> tog will segfault
    
    The first change in this patch is a partial fix. The log thread should always
    check the 'quit' flag as soon as it wakes from sleep. Otherwise it could try
    to load more commits after waking up and before checking the 'quit' flag.
    It will then attempt to load commits with a NULL commit graph pointer.
    
    This partial fix by itself is not sufficient to fix the crash, since we'll
    now see a bus error in the main thread, instead of a NULL deref in the
    log thread. The remainder of the patch fixes this bus error.
    
    ok naddy