[mythtv-commits] Ticket #13621: Convert from Qt foreach() macro to standard C++ range-for.
MythTV
noreply at mythtv.org
Mon May 25 18:01:40 UTC 2020
#13621: Convert from Qt foreach() macro to standard C++ range-for.
----------------------------------+-------------------------------
Reporter: David Hampton | Owner: David Hampton
Type: Bug Report - General | Status: assigned
Priority: major | Milestone: 32.0
Component: MythTV - General | Version: Master Head
Severity: medium | Resolution:
Keywords: | Ticket locked: 0
----------------------------------+-------------------------------
Comment (by David Hampton <mythtv@…>):
In [changeset:"5d9b74e7e6e33b07e2525d6f47776b637e9e7303/mythtv"
5d9b74e7e6/mythtv]:
{{{
#!CommitTicketReference repository="mythtv"
revision="5d9b74e7e6e33b07e2525d6f47776b637e9e7303"
Convert from Qt foreach() macro to C++ standard range-for.
(plugins)
The use of foreach has caused some unexpected problems in the
scheduler, which were chased down to containers detaching in the call
to get the last item of the range. This detach guarantees that the
current iterator is now invalid and the operation will eventually run
off the end of the range.
The Qt company is also planning to remove the foreach/Q_FOREACH macro
in an (as yet unspecified) upcoming release.
Replace all instances of the foreach macro with a standard C++
range-for iteration, and (in almost all cases) use the qAsConst macro
mark to the ranges as constant to prevent detaching of the data.
There are a couple of places where adding the qAsConst macro throws a
compiler error, so omit qAsConst in those instances. These cases all
appear to occur with temporary lists, and this behavior is intentional
on Qt's part (see the Qt documentation).
Refs #13621
}}}
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13621#comment:1>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list