Ticket #2426: crash_on_calcsliderpos.diff

File crash_on_calcsliderpos.diff, 1.9 KB (added by skamithi, 17 years ago)

prevents state change from occurring while pause action is been executed. prevents a crash when changing to a different recording.

  • libs/libmythtv/tv_play.cpp

     
    34753475
    34763476void TV::DoPause(bool showOSD)
    34773477{
    3478     if (activerbuffer->InDVDMenuOrStillFrame())
     3478    QMutexLocker locker(&stateLock);
     3479    if (activerbuffer &&
     3480        activerbuffer->InDVDMenuOrStillFrame())
     3481    {
    34793482        return;
     3483    }
    34803484
    34813485    speed_index = 0;
    34823486    float time = 0.0;
     
    49844988                {
    49854989                    stayPaused = paused;
    49864990                    if (!paused)
    4987                         DoPause();
     4991                        DoPause(false);
    49884992                }
    49894993                if (theme)
    49904994                    delete theme;
     
    49975001                    delete nextProgram;
    49985002                }
    49995003                if (paused & !stayPaused)
    5000                     DoPause();
     5004                    DoPause(false);
    50015005                break;
    50025006            }
    50035007        }
     
    50075011    {
    50085012        bool stayPaused = paused;
    50095013        if (!paused)
    5010             DoPause();
     5014            DoPause(false);
    50115015
    50125016        switch (editType)
    50135017        {
     
    50425046        }
    50435047
    50445048        if (!stayPaused)
    5045             DoPause();
     5049            DoPause(false);
    50465050    }
    50475051
    50485052    // Resize the window back to the MythTV Player size
     
    74467450 
    74477451    bool stayPaused = paused;
    74487452    if (!paused)
    7449         DoPause();
     7453        DoPause(false);
    74507454    QString recGroupPassword;
    74517455    lastProgram->UpdateRecGroup();
    74527456    recGroupPassword = ProgramInfo::GetRecGroupPassword(lastProgram->recgroup);
     
    74707474                GetOSD()->SetSettingsText(msg, 3);
    74717475            }
    74727476            if (paused && !stayPaused)
    7473                 DoPause();
     7477                DoPause(false);
    74747478            return false;
    74757479        }
    74767480    }
    74777481    if (paused && !stayPaused)
    7478         DoPause();
     7482        DoPause(false);
    74797483    return true;
    74807484}
    74817485