Ticket #3618: mythtv_tvchain_clearswitch.diff

File mythtv_tvchain_clearswitch.diff, 1.3 KB (added by Shane Shrybman <gnome42@…>, 16 years ago)

Always clear NeedsToJump/NeedsToSwitch?

  • libs/libmythtv/livetvchain.cpp

     
    374374ProgramInfo *LiveTVChain::GetSwitchProgram(bool &discont, bool &newtype,
    375375                                           int &newid)
    376376{
     377    LiveTVChainEntry oldentry, entry;
     378    ProgramInfo *pginfo = NULL;
     379
    377380    QMutexLocker lock(&m_lock);
    378381
    379382    if (m_switchid < 0 || m_curpos == m_switchid)
    380         return NULL;
     383        goto clearswitch;
    381384
    382     LiveTVChainEntry oldentry, entry;
    383385    GetEntryAt(m_curpos, oldentry);
    384386
    385     ProgramInfo *pginfo = NULL;
    386387    while (!pginfo && m_switchid < (int)m_chain.count() && m_switchid >= 0)
    387388    {
    388389        GetEntryAt(m_switchid, entry);
     
    398399    }
    399400
    400401    if (!pginfo)
    401         return NULL;
     402        goto clearswitch;
    402403
    403404    // Skip dummy recordings, if possible.
    404405    if (entry.cardtype == "DUMMY")
     
    413414    }
    414415
    415416    if (!pginfo)
    416         return NULL;
     417        goto clearswitch;
    417418
    418419    discont = true;
    419420    if (m_curpos == m_switchid - 1)
     
    433434    }
    434435
    435436    newid = m_switchid;
    436     m_switchid = -1;
    437437
     438clearswitch:
     439    ClearSwitch();
     440
    438441    return pginfo;
    439442}
    440443