[mythtv] [mythtv-commits] [MythTV/mythtv] 704f5e: android: Fix problem with frontend setup

David Engel david at istwok.net
Mon Jan 27 17:40:20 UTC 2020


On Mon, Jan 27, 2020 at 11:04:21AM -0500, David Hampton wrote:
> On Mon, 2020-01-27 at 09:00 -0500, Peter Bennett wrote:
> > 
> > 
> > On 1/27/20 1:47 AM, Klaas de Waal wrote:
> > > 
> > > On Mon, 27 Jan 2020 at 01:31, Peter Bennett <noreply at github.com>
> > > wrote:
> > > >   Branch: refs/heads/master
> > > >   Home:   https://github.com/MythTV/mythtv
> > > >   Commit: 704f5ef3660792b80709d17ebe24724326de3b4a
> > > >       
> > > > https://github.com/MythTV/mythtv/commit/704f5ef3660792b80709d17ebe24724326de3b4a
> > > >   Author: Peter Bennett <pbennett at mythtv.org>
> > > >   Date:   2020-01-26 (Sun, 26 Jan 2020)
> > > > 
> > > >   Changed paths:
> > > >     M mythtv/libs/libmyth/standardsettings.cpp
> > > >     M mythtv/libs/libmythui/mythdialogbox.cpp
> > > > 
> > > >   Log Message:
> > > >   -----------
> > > >   android: Fix problem with frontend setup
> > > > 
> > > > using auto for a dynamic cast was not working. Changed to
> > > > appropriate object type.
> > > > 
> > > > 
> > > 
> > > Can this be an issue in more places in the code?
> > > 
> > > Klaas. 
> > > 
> > > 
> >  Hi Klaas
> > 
> > I think it could be. This came up with Mark Spieth's packaging change
> > to  use a new compiler. I will look through the code to see if there
> > are many uses of "auto" and whether they are working on android.
> 
> Hi Peter,
> 
> I noticed that your commit also included a change from dynamic_cast to
> static_cast.  Those are very different animals, and that's far more
> likely the cause of the problem.  The former happens at runtime and can
> fail and return nullptr; the latter happens at compile time.  Could
> that fix be what made the code work again, not the auto changes?
> 
> >  I am not very familiar with "auto" and its usage, but in this case
> > it seemed unnecessary because you could see the type right there in
> > the code.
> 
> One of the reasons to use auto is that you don't have to repeat the
> same type name in a single line of code.  :-)  I know for simple short
> time names its just as easy to write the type twice, bit for long
> complicated names its easier to write "auto".
> 
> >  Other places where they assign auto to the result of a complicated
> > expression may be more difficult to fix if they are not working. What
> > was particularly confusing was that the code seemed to use "auto" and
> > "auto *" interchangeably when creating a pointer.
> 
> Yes, that's a little confusing.  If you use the "auto" keyword by
> itself, it does figure out that that right side of the equals sign is a
> pointer and will correctly use a pointer.  "Auto *" deduces the exact
> same type, but it reads easier to us humans.  There's newer code in
> clang-11 to ensure that it replaces duplicated type declarations with
> "auto", "auto *", "auto &", or "const auto *" where appropriate.  All
> essentially work out the same to the compiler, but the latter three are
> more readable to humans.  I have a fix in my working branch that
> updates a number of instance of "auto" to be "auto *".  I was waiting
> until after the v31 split to merge the changes, but I can cherry-pick
> that fix into master if the group wants.
> 
> >  This was working in linux and the old compiler but not the new
> > compiler.
> 
> Sound like I need to update my setup for the new compiler and sdk/ndk.

Has anyone tried for Linux with clang, perticularly the same version
used on Android?  That might help to isolate the problem to clang or
Android.

David
-- 
David Engel
david at istwok.net


More information about the mythtv-dev mailing list