[gelöst] vdr 1.7.42 und epgsearch (git vom 28.03.2013) - Timer-IDs alle 1, d.h. die verkettete Timer-Liste ist kaputt

  • Moin!


    Irgendwas scheint da noch im Argen zu sein, hier mal der syslog-Ausschnitt:


    Vor dem Konflikt-Check ist noch alles ok, danach nicht mehr. Bei allen Timern wird der Index 1 angezeigt.
    Der Index wird so berechnet (im vdr, tools.c):


    Es wird also der Vorgänger des aktuellen Objekts genommen und so lange gezählt, bis es keinen mehr gibt, man also am Anfang der Liste ist.


    Wenn jetzt immer ein Index von 0 zurückkommt (für die Ausgabe wird in cTimer::ToDescr noch eins addiert), heißt das eigentlich, dass "prev" immer NULL ist.
    Bei LSTT kommen noch alle Timer, ebenso im OSD. Das heißt für mich, dass "next" noch in Ordnung ist.


    Irgendwas scheint also die doppelt verkettete Liste kaputt zu machen.
    Jemand eine Idee?


    Lars.

  • Moin!


    Ok, Entwarnung, die Liste ist nicht kaputt. Hab die Ursache für die syslog-Meldung gefunden:

    Code
    // create a copy of this timer
            cTimer* clone = new cTimer(*ti);
            clone->SetEvent(ti->Event());


    Das "SetEvent" löst sie aus und das "clone" nicht zu einer Liste gehört, kommt dann immer "1" als Index in der Ausgabe.


    Also zumindest in diesem Bereich alles ok.


    Lars.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!