Bug 16564 - class QwtData has non-virtual method without implementation
Summary: class QwtData has non-virtual method without implementation
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: libqwt (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 20278
Blocks:
  Show dependency tree
 
Reported: 2008-08-05 19:39 MSD by Alexey V. Novikov
Modified: 2009-06-02 15:32 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey V. Novikov 2008-08-05 19:39:54 MSD
libqwt-devel-5.1.1-alt1
Класс QwtData (qwt_data.h) содержит метод QwtData &operator=(const QwtData &)
который не объявлен как виртуальный, но при этом libqwt.so.5.1.1 не содержит соответствующего символа.
Решение: добавить virtual в описание метода.
Comment 1 Vitaly Lipatov 2008-08-06 10:28:19 MSD
Как воспроизвести проблему?
В qwt_data.cpp есть
QwtArrayData& QwtArrayData::operator=(const QwtArrayData &data)
Comment 2 Alexey V. Novikov 2008-08-07 08:24:08 MSD
Виталик, никто и не спорит, что в классе QwtArrayData этот метод реализован.
Дело в том, что в классе QwtData этот метод не реализован.
Обычные программы вряд ли будут его использовать, но вот некоторые кодогенераторы...
Проверить можно вот на чем: ftp://ftp.gis-auto.ru/ruby-qt4-1.4.10-alt2.src.rpm
Если в нем оторвать первый кусок патча ruby-qt4-alt-fix-kalyptus.patch,
который относится к kalyptusCxxToSmoke.pm (это как раз и есть workaround данной проблемы), то в итоге получим unresolved symbol у libsmokeqt именно на QwtData &operator=(const QwtData &).
Comment 3 Vitaly Lipatov 2009-01-04 03:02:52 MSK
qwt_data.h:

class QWT_EXPORT QwtData:
...
    /*!
      Assignment operator (virtualized)
     */
    QwtData &operator=(const QwtData &);

Автор явно имел какой-то тайный умысел, написав слово virtualized.
Если я добавлю слово virtual, это изменит ABI библиотеки.
Возможно стоит авторам ruby-qt4 договориться с авторами libqwt? :)
Comment 4 Alexey V. Novikov 2009-01-08 08:44:42 MSK
(In reply to comment #3)

> Автор явно имел какой-то тайный умысел, написав слово virtualized.
Что именно имел в виду автор, для меня загадка. Возможно он просто забыл реализовать этот метод или объявить его виртуальным. А т.к. в обычной ситуации это ничем не грозит, то скорее всего он даже не в курсе.

> Если я добавлю слово virtual, это изменит ABI библиотеки.
По всей видимости.

> Возможно стоит авторам ruby-qt4 договориться с авторами libqwt? :)
Теперь это уже должна быть головная боль zerg@, если он все-таки собирается делать ruby-qt4 из kde4bindings и собирать это хозяйство с qwt (в последнем я не уверен).