[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-games-devel
Subject:    [Kde-games-devel] Legacy code problem in libkdegames/kgame
From:       Ian Wadham <iandw.au () gmail ! com>
Date:       2011-12-29 2:13:44
Message-ID: 95DE1BDF-669B-492B-BFB8-3285D9F575C0 () gmail ! com
[Download RAW message or body]

In libkdegames/kgame there is a header file kgamepropertyarray.h which
contains a definition for class KGamePropertyArray.  In this class there is
a method declaration and definition as follows:

  void sort()
  {
    QByteArray b;
    QDataStream s(b, QIODevice::WriteOnly);
    =85.
  }

This compiles in most environments (apparently) but failed to compile when
I used Macports to port kdegames 4.7.4 to my Apple Macbook.  The offending
header is referenced by KFourInLine.  I am still investigating the details,=
 so I do
not yet know whether KFourInline actually uses KGamePropertyArray::sort(),
but I thought I should draw this problem to the KDE Games group's attention,
seeing as we are so close to a KDE SC 4.8 release and (I think I read somew=
here)
there might be no more releases on the KDE SC 4.7 branch.

What I wonder is whether anyone else has any ideas, fixes or workarounds fo=
r this?

I also wonder how this code compiles at all in KDE Games' day-to-day work a=
nd
in KDE SC releases?

In Qt 4.7, QDataStream can have a constructor with a const QByteArray & and
no second parameter, so the QByteArray must have read-only mode.  Or it can
be constructed with a QByteArray * and a second parameter for the mode,
which can then be ReadOnly, WriteOnly, etc.

Neither constructor matches the existing code, so whatever compiler Macports
is using is quite right to flag an error, but why don't other compilers, es=
pecially the
ones KDE releases use?

The code in question seems to be a holdover from Qt 3 days.  See:
http://doc.qt.nokia.com/3.3/qdatastream.html#QDataStream-3
The constructor with plain QByteArray and a mode was allowed back then.

All the best, Ian W.

P.S. I have upgraded my Macbook to OS X 10.7.2 Lion and XCode 4.2.1 and
am currently re-building all my Macports "ports" of Qt-mac, kdelibs (4.7) a=
nd
kdegames (4.7.4), after upgrading Macports to v. 2.0.3.  I think this may be
bringing in some newer, tougher compilers, but I have not yet investigated =
that.

_______________________________________________
kde-games-devel mailing list
kde-games-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-games-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic