Hi,
I just ran into a problem with cChannel's copy constructor. The problem is that this is actually not a copy constructor, because it sets the values to 0 instead of copying, and - most important - it behaves different from operator=.
It seems these two are not used in VDR except for one place (where I found this), cSectionHandler::SetChannel. The value stored by cSectionHandle has nid,tid,sid set to 0. In the line shp->channel = Channel ? *Channel : cChannel(); there seems only the operator= involved, but actually the copy constructor is invoked before the *Channel is given to opertator=. Attached is a short test program which illustrates the problem.
Solution is to make the copy constructor do copying.
Marcel