On Tuesday, 8 January 2019 at 10:23:30 UTC, Russel Winder wrote:
Actually that is not a worry since the TransmitterData instance is only needed to call the scan function which creates a ChannelsData instance that holds no references to the TransmitterData instance.

It turns out that whilst the code used to run, and now doesn't, all the things we have been talking of are nothing to do with the core problem. It turns out that the function call to initialise the File_Ptr object is returning a valid object with invalid data. Thus the unknown change is likely in the libdvbv5 library either due to the C API doing different things or the adapter created
using DStep doing the wrong thing.

Ahh. Good that you've found that, I can't help you much more with that then.

The compiler generated default opEquals will do basically the same thing. Ditto for the other types. You usually want to take a const ref for opEquals since there is no point copying it.

I deleted them, added a test or three (should have done this ages ago) and the tests pass. So teh generated methods do the needful. Thanks for that "heads up".

No problems, less code is good code.

Very true. For now I have forbidden copying, which is wrong for this sort of thing. If D had the equivalent of C++ std::shared_ptr or Rust std::rc::Rc or std::rc::Arc, that would be the way forward But I guess having explicit reference counting is not too hard.

I believe Andrei and Razvan are working on that, part of that being the Copy Constructor DIP. Hopefully it will arrive soon.

You seem to like const, good! You don't need to take `const int`s as parameters, you're getting a copy anyway. You have a bunch of redundant casts as well.

I am a person who always makes Java variables final, and loves that Rust variables are immutable by default!

Indeed, less to think about is always nice.

Good luck figuring out why your data is dud.
Nic

Reply via email to