VirtualZap -> Kanallistenupdate -> segfault

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

VirtualZap -> Kanallistenupdate -> segfault

Beitrag von seife »

Hallo,
ist mir grad beim Testen aufgefallen:
Wenn, während virtual Zap aktiv ist (virtual zap infobar eingeblendet, nicht selektiert) ein Kanallistenupdate vom sectionsd kommt, dann segfaulted neutrino spätestens wenn virtual Zap beendet wird.

Ablauf:
- Kanallistenupdate triggert einen NeutrinoMessages::EVT_BOUQUETSCHANGED in neutrino.cpp
- daraufhin wird channelsInit() aufgerufen
- das macht dann delete channelListTV, füllt channelListTV neu und macht "channelList = channelListTv".
- damit ist die alte CNeutrinoApp::getInstance()->channelList->virtual_zap_mode() aus infoviewer.cpp:showTitle() nicht mehr gültig und es fliegt einem alles um die Ohren.

Ausser ein paar ganz doofen hacks ist mir dazu nichts eingefallen, man müsste wohl den destruktor von CChannelList so aufbohren, dass er den virtual_zap_mode ordentlich mit aufräumt.
Mag sich das ein C++-Spezi mal anschauen, mein C++ ist dafür zu schwach (und ausserdem benutze ich virtualZap nicht mal ;))
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: VirtualZap -> Kanallistenupdate -> segfault

Beitrag von rhabarber1848 »

seife hat geschrieben:dann segfaulted neutrino spätestens wenn virtual Zap beendet wird.
Das erklärt zumindest einige Abstürze, die ich, allerdings sehr selten, mit Neutrino hatte.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: VirtualZap -> Kanallistenupdate -> segfault

Beitrag von seife »

Vermutlich kann das auch nicht nur mit kanallistenupdates getriggert werden, sondern wohl auch anders, halt alles, was die channellist updated während virtualzap aktiv ist. Mir ist es halt nach einem kanallistenupdate aufgefallen.