----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviewboard.kde.org/r/2026/#review2882 -----------------------------------------------------------
I don't see a reason for the first leak you highlight in your code. You should create the url using QLatin1String as this saves QString having to guess the encoding -see http://labs.trolltech.com/blogs/2008/04/28/string-theory/ for details. The second leak is due to the main IonInterface (outside your code) leaking its d-pointer. I can't see why it or your WetterComIon::Private need to be QObjects, when they don't do any QObject-type things, so I'd remove this unless I am wrong for some subtle reason. I fixed this with r1043227 but you should probably also remove the QObject inheritance from your code. - Will On 2009-10-31 14:02:05, Thilo-Alexander Ginkel wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviewboard.kde.org/r/2026/ > ----------------------------------------------------------- > > (Updated 2009-10-31 14:02:05) > > > Review request for kdelibs, Plasma and Shawn Starr. > > > Summary > ------- > > This change brings support for wetter.com (a weather forecast web site > especially popular in Germany) as a weather data source to KDE. > The Ion makes use of wetter.com's officially-supported REST API. The API > supports forecasts for up to three days, so the Ion does not supply any > information about the current weather conditions. The forecast for the > current day is split between night and day whereas the following two days are > provided as an aggregated value for the whole day, respectively. > > Any feedback is much appreciated! > > > This addresses bug 204219. > https://bugs.kde.org/show_bug.cgi?id=204219 > > > Diffs > ----- > > /trunk/kdereview/plasma/dataengines/CMakeLists.txt 1043003 > /trunk/kdereview/plasma/dataengines/weather/CMakeLists.txt PRE-CREATION > /trunk/kdereview/plasma/dataengines/weather/ions/CMakeLists.txt > PRE-CREATION > /trunk/kdereview/plasma/dataengines/weather/ions/ion-wettercom.desktop > PRE-CREATION > /trunk/kdereview/plasma/dataengines/weather/ions/ion_wettercom.h > PRE-CREATION > /trunk/kdereview/plasma/dataengines/weather/ions/ion_wettercom.cpp > PRE-CREATION > > Diff: http://reviewboard.kde.org/r/2026/diff > > > Testing > ------- > > Tested the Ion under a current KDE installation from trunk, fixed all Krazy > warnings before the move to kdereview. Profiled it for memory leaks using > Valgrind, which did not bring up any leaks in the control of the Ion. Those > two still look somewhat suspicious, so I'd like to get your opinion about > them: > > 42 bytes in 1 blocks are definitely lost in loss record 372 of 1,156 > at 0x4C25153: malloc (vg_replace_malloc.c:195) > by 0x60EDCB4: QString::QString(int, Qt::Initialization) (qstring.cpp:1027) > by 0x61BD5EE: QUtf8::convertToUnicode(char const*, int, > QTextCodec::ConverterState*) (qutfcodec.cpp:169) > by 0x60EFDFA: QString::fromUtf8(char const*, int) (qstring.cpp:3850) > by 0x614C052: fromPercentEncodingMutable(QByteArray*) (qurl.cpp:223) > by 0x614EFB3: QUrlPrivate::parse(QUrlPrivate::ParseOptions) const > (qurl.cpp:3781) > by 0x61534FE: QUrl::isValid() const (qurl.cpp:4124) > by 0x5A23B5A: KUrl::_setEncodedUrl(QByteArray const&) (kurl.cpp:1538) > by 0x5A23F19: KUrl::KUrl(QString const&) (kurl.cpp:411) > by 0x1FAE37D6: WetterComIon::getForecast(QString const&) > (ion_wettercom.cpp:504) > by 0x1FAE5BAA: WetterComIon::updateIonSource(QString const&) > (ion_wettercom.cpp:320) > by 0x1F267CBE: IonInterface::sourceRequestEvent(QString const&) > (ion.cpp:47) > > 176 (32 direct, 144 indirect) bytes in 1 blocks are definitely lost in loss > record 882 of 1,156 > at 0x4C2596C: operator new(unsigned long) (vg_replace_malloc.c:220) > by 0x1F267795: IonInterface::IonInterface(QObject*, QList<QVariant> > const&) (ion.cpp:36) > by 0x1FAE151D: WetterComIon::WetterComIon(QObject*, QList<QVariant> > const&) (ion_wettercom.cpp:68) > by 0x1FAEE366: QObject* KPluginFactory::createInstance<WetterComIon, > QObject>(QWidget*, QObject*, QList<QVariant> const&) (kpluginfactory.h:461) > by 0x5B3367B: KPluginFactory::create(char const*, QWidget*, QObject*, > QList<QVariant> const&, QString const&) (kpluginfactory.cpp:191) > by 0x5594EB5: Plasma::DataEngineManager::loadEngine(QString const&) > (kpluginfactory.h:515) > by 0x1F6C813F: WeatherEngine::loadIon(QString const&) > (weatherengine.cpp:92) > by 0x1F6C8C7C: WeatherEngine::sourceRequestEvent(QString const&) > (weatherengine.cpp:226) > by 0x55913AC: Plasma::DataEnginePrivate::requestSource(QString const&, > bool*) (dataengine.cpp:670) > by 0x5591421: Plasma::DataEngine::connectSource(QString const&, QObject*, > unsigned int, Plasma::IntervalAlignment) const (dataengine.cpp:89) > by 0x1F05608D: WeatherPopupApplet::connectToEngine() > (weatherpopupapplet.cpp:234) > by 0x1F05815E: WeatherPopupApplet::init() (weatherpopupapplet.cpp:223) > > > Thanks, > > Thilo-Alexander > > _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel