[Bug 119230] New: memleak in xine engine

View: New views
13 Messages — Rating Filter:   Alert me  

[Bug 119230] New: memleak in xine engine

by Miguel Angel Alvarez-3 :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         
           Summary: memleak in xine engine
           Product: amarok
           Version: 1.3.7
          Platform: SuSE RPMs
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
        AssignedTo: amarok-bugs-dist lists sourceforge net
        ReportedBy: maacruz gmail com


Version:           1.3.7 (using KDE KDE 3.5.0)
Installed from:    SuSE RPMs
Compiler:          gcc 4.0.2
OS:                Linux

Amarok with xine engine has a memleak when crossfade is enabled, and ends eating all available memory.
How to reproduce:
Open amarok, select xine engine, activate crossfade. Start playing, to accelerate things keep hitting "next", on every song change a bit of memory is claimed and never get's released. After enough time amarok is a really BIG process.

[Bug 119230] memleak in xine engine

by Miguel Angel Alvarez-3 :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From maacruz gmail com  2005-12-30 12:40 -------
Created an attachment (id=14079)
 --> (http://bugs.kde.org/attachment.cgi?id=14079&action=view)
ksysguard screenshot

[Bug 119230] memleak in xine engine

by Thiago Macieira :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From thiago kde org  2005-12-30 14:45 -------
I can confirm this. Running amarokapp inside valgrind detects lots of invalid jumps and dangling pointers inside libxine, like the following:

==23519== Invalid read of size 4
==23519==    at 0x9FE68CC: (within /usr/lib/libxine.so.1.11.1)
==23519==    by 0x6B896C7: ???
==23519==  Address 0x6B896D0 is 8 bytes inside a block of size 68 free'd
==23519==    at 0x401FF3A: free (vg_replace_malloc.c:235)
==23519==    by 0x9FE852C: (within /usr/lib/libxine.so.1.11.1)

I'm inclined to believe the bug is there.

==23792== ERROR SUMMARY: 1259 errors from 237 contexts (suppressed: 372 from 4)
==23792== malloc/free: in use at exit: 23,586,935 bytes in 57,571 blocks.
==23792== malloc/free: 1,375,158 allocs, 1,317,588 frees, 154,936,009 bytes allocated.

==23792== LEAK SUMMARY:
==23792==    definitely lost: 5,509 bytes in 365 blocks.
==23792==    indirectly lost: 5,226 bytes in 147 blocks.
==23792==      possibly lost: 17,588 bytes in 477 blocks.
==23792==    still reachable: 23,558,612 bytes in 56,582 blocks.
==23792==         suppressed: 0 bytes in 0 blocks.

Definetely lost:
==23792== 1 bytes in 1 blocks are definitely lost in loss record 7 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x81F4DA3: PlaylistWindow::PlaylistWindow() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80ABCFF: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 40 (24 direct, 16 indirect) bytes in 2 blocks are definitely lost in loss record 339 of 1,222
==23792==    at 0x40206FF: calloc (vg_replace_malloc.c:279)
==23792==    by 0xA2E2EB4: snd_output_stdio_attach (in /usr/lib/libasound.so.2.0.0)
==23792==    by 0xA99FD79: (within /usr/lib/xine/plugins/1.0.0/xineplug_ao_out_alsa.so)
==23792==    by 0x9FF702C: (within /usr/lib/libxine.so.1.11.1)

==23792== 100 (8 direct, 92 indirect) bytes in 2 blocks are definitely lost in loss record 519 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x80CEF1E: CollectionDB::getMyConnection() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80CF477: CollectionDB::query(QString const&) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80E836E: CollectionDB::IDFromValue(QString, QString, bool, bool, bool) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80E9783: CollectionDB::artistID(QString, bool, bool, bool) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x810A6B5: CurrentTrackJob::doJob() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x825F355: ThreadWeaver::Thread::run() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5181BB1: QThreadInstance::start(void*) (qthread_unix.cpp:119)
==23792==    by 0x599B364: start_thread (pthread_create.c:261)
==23792==    by 0x5B709BD: clone (in /lib/tls/libc-2.3.4.so)

==23792== 168 bytes in 1 blocks are definitely lost in loss record 909 of 1,222
==23792==    at 0x401F445: malloc (vg_replace_malloc.c:149)
==23792==    by 0x5F8F333: XcursorCursorsCreate (in /usr/X11R6/lib/libXcursor.so.1.0.2)
==23792==    by 0x5F907B7: XcursorImagesLoadCursors (in /usr/X11R6/lib/libXcursor.so.1.0.2)
==23792==    by 0x5F90884: XcursorImagesLoadCursor (in /usr/X11R6/lib/libXcursor.so.1.0.2)
==23792==    by 0x5F939D7: XcursorTryShapeCursor (in /usr/X11R6/lib/libXcursor.so.1.0.2)
==23792==    by 0x5DED340: XCreateGlyphCursor (in /usr/X11R6/lib/libX11.so.6.2)
==23792==    by 0x5DED7C8: XCreateFontCursor (in /usr/X11R6/lib/libX11.so.6.2)
==23792==    by 0x5122AAF: QCursor::update() const (qcursor_x11.cpp:827)
==23792==    by 0x512244C: QCursor::handle() const (qcursor_x11.cpp:383)
==23792==    by 0x514D922: qt_x11_enforce_cursor(QWidget*) (qwidget_x11.cpp:190)
==23792==    by 0x510B5BD: QApplication::setOverrideCursor(QCursor const&, bool) (qapplication_x11.cpp:2767)
==23792==    by 0x47C4B6F: KDirOperator::connectView(KFileView*) (kdiroperator.cpp:1064)
==23792==    by 0x47C4D59: KDirOperator::setView(KFileView*) (kdiroperator.cpp:1098)
==23792==    by 0x47C4E8E: KDirOperator::setView(KFile::FileView) (kdiroperator.cpp:978)
==23792==    by 0x47C4FDA: KDirOperator::setMode(KFile::Mode) (kdiroperator.cpp:1086)
==23792==    by 0x814AB1D: FileBrowser::FileBrowser(char const*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x81FA29E: PlaylistWindow::init() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80ABD39: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 216 bytes in 1 blocks are definitely lost in loss record 935 of 1,222
==23792==    at 0x401F445: malloc (vg_replace_malloc.c:149)
==23792==    by 0x6C2B635: _XimOpenIM (in /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2)
==23792==    by 0x5E598DD: (within /usr/X11R6/lib/libX11.so.6.2)
==23792==    by 0x6C2B1C9: _XimRegisterIMInstantiateCallback (in /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2)
==23792==    by 0x5E599FB: (within /usr/X11R6/lib/libX11.so.6.2)
==23792==    by 0x5E28787: XRegisterIMInstantiateCallback (in /usr/X11R6/lib/libX11.so.6.2)
==23792==    by 0x5109B35: qt_init_internal(int*, char**, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2122)
==23792==    by 0x510A394: qt_init(int*, char**, QApplication::Type) (qapplication_x11.cpp:2340)
==23792==    by 0x518BCA5: QApplication::construct(int&, char**, QApplication::Type) (qapplication.cpp:813)
==23792==    by 0x518B93A: QApplication::QApplication(int&, char**, bool) (qapplication.cpp:773)
==23792==    by 0x4CCB5F3: KApplication::KApplication(bool, bool) (kapplication.cpp:623)
==23792==    by 0x80ABA59: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 216 bytes in 3 blocks are definitely lost in loss record 936 of 1,222
==23792==    at 0x40206FF: calloc (vg_replace_malloc.c:279)
==23792==    by 0x4011BAA: _dl_allocate_tls (dl-tls.c:303)
==23792==    by 0x599BBFB: pthread_create  GLIBC_2 1 (allocatestack.c:502)
==23792==    by 0x82BAC8A: findLockInfo (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x82BBC09: sqlite3OsOpenReadWrite (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x82DDBA0: sqlite3pager_open (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x82CB38A: sqlite3BtreeOpen (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x82BA177: sqlite3BtreeFactory (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x82BA69B: openDatabase (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80CD97A: SqliteConnection::SqliteConnection(SqliteConfig*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80CEF4E: CollectionDB::getMyConnection() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80DB6BF: CollectionDB::initialize() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80DDE4E: CollectionDB::CollectionDB() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80DE4E1: CollectionDB::instance() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x819F919: Playlist::Playlist(QWidget*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x81F8AA9: PlaylistWindow::init() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80ABD39: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 1,456 (360 direct, 1,096 indirect) bytes in 10 blocks are definitely lost in loss record 959 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x8152EA6: HTMLView::loadStyleSheet() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80F7175: ContextBrowser::saveHtmlData() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80FE5EF: ContextBrowser::showHome() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x810A3E7: ContextBrowser::qt_invoke(int, QUObject*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5202A22: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356)
==23792==    by 0x56096EB: QTabWidget::currentChanged(QWidget*) (moc_qtabwidget.cpp:147)
==23792==    by 0x536E4C9: QTabWidget::showTab(int) (qtabwidget.cpp:652)
==23792==    by 0x5609908: QTabWidget::qt_invoke(int, QUObject*) (moc_qtabwidget.cpp:162)
==23792==    by 0x4B51C42: KTabWidget::qt_invoke(int, QUObject*) (ktabwidget.moc:388)
==23792==    by 0x810A18F: ContextBrowser::qt_invoke(int, QUObject*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5202A22: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356)
==23792==    by 0x5202DE4: QObject::activate_signal(int, int) (qobject.cpp:2449)
==23792==    by 0x5608D50: QTabBar::selected(int) (moc_qtabbar.cpp:121)
==23792==    by 0x5369BAD: QTabBar::show() (qtabbar.cpp:807)
==23792==    by 0x5245ED7: QWidget::showChildren(bool) (qwidget.cpp:4125)
==23792==    by 0x5245981: QWidget::show() (qwidget.cpp:3984)
==23792==    by 0x5245ED7: QWidget::showChildren(bool) (qwidget.cpp:4125)
==23792==    by 0x5245981: QWidget::show() (qwidget.cpp:3984)
==23792==    by 0x80AF53A: BrowserBar::showHideBrowser(int) (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 734 (224 direct, 510 indirect) bytes in 20 blocks are definitely lost in loss record 960 of 1,222
==23792==    at 0x40206FF: calloc (vg_replace_malloc.c:279)
==23792==    by 0xA0103DB: xine_xmalloc (in /usr/lib/libxine.so.1.11.1)

==23792== 240 bytes in 30 blocks are definitely lost in loss record 963 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x4208C72: DOM::ElementMappingCache::add(QString const&, DOM::ElementImpl*) (dom_docimpl.cpp:239)
==23792==    by 0x421C137: DOM::ElementImpl::updateId(DOM::DOMStringImpl*, DOM::DOMStringImpl*) (dom_docimpl.h:528)
==23792==    by 0x421DF26: DOM::ElementImpl::insertedIntoDocument() (dom_string.h:115)
==23792==    by 0x42143D4: DOM::NodeBaseImpl::addChild(DOM::NodeImpl*) (dom_nodeimpl.cpp:1327)
==23792==    by 0x4231027: khtml::KHTMLParser::insertNode(DOM::NodeImpl*, bool) (htmlparser.cpp:327)
==23792==    by 0x4233D46: khtml::KHTMLParser::parseToken(khtml::Token*) (htmlparser.cpp:289)
==23792==    by 0x4234850: khtml::HTMLTokenizer::processToken() (htmltokenizer.cpp:1666)
==23792==    by 0x42392DC: khtml::HTMLTokenizer::parseTag(khtml::TokenizerString&) (htmltokenizer.cpp:1166)
==23792==    by 0x423BE0F: khtml::HTMLTokenizer::write(khtml::TokenizerString const&, bool) (htmltokenizer.cpp:1425)
==23792==    by 0x41C37C6: KHTMLPart::write(QString const&) (khtml_part.cpp:1992)
==23792==    by 0x81555F4: HTMLView::set(QString const&) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80FE5E1: ContextBrowser::showHome() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x810A3E7: ContextBrowser::qt_invoke(int, QUObject*) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5202A22: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356)
==23792==    by 0x56096EB: QTabWidget::currentChanged(QWidget*) (moc_qtabwidget.cpp:147)
==23792==    by 0x536E4C9: QTabWidget::showTab(int) (qtabwidget.cpp:652)
==23792==    by 0x5609908: QTabWidget::qt_invoke(int, QUObject*) (moc_qtabwidget.cpp:162)
==23792==    by 0x4B51C42: KTabWidget::qt_invoke(int, QUObject*) (ktabwidget.moc:388)
==23792==    by 0x810A18F: ContextBrowser::qt_invoke(int, QUObject*) (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 1,712 (360 direct, 1,352 indirect) bytes in 10 blocks are definitely lost in loss record 1,010 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x8152CA7: HTMLView::loadStyleSheet() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80F7317: ContextBrowser::reloadStyleSheet() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5243C02: QWidget::unsetFont() (qwidget.cpp:2989)
==23792==    by 0x81F5E19: PlaylistWindow::applySettings() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80A918D: App::applySettings(bool) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80ABD7C: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

==23792== 1,692 (360 direct, 1,332 indirect) bytes in 10 blocks are definitely lost in loss record 1,048 of 1,222
==23792==    at 0x401F7D0: operator new(unsigned) (vg_replace_malloc.c:164)
==23792==    by 0x8152B1B: HTMLView::loadStyleSheet() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80F7317: ContextBrowser::reloadStyleSheet() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x5243C02: QWidget::unsetFont() (qwidget.cpp:2989)
==23792==    by 0x81F5E19: PlaylistWindow::applySettings() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80A918D: App::applySettings(bool) (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x80ABD7C: App::App() (in /usr/local/kde3-r487700/bin/amarokapp)
==23792==    by 0x8268679: main (in /usr/local/kde3-r487700/bin/amarokapp)

[Bug 119230] memleak in xine engine

by Thiago Macieira :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From thiago kde org  2005-12-30 14:46 -------
Unfortunately I had not built amaroK with debugging symbols. My system is a Subversion build of KDE 3.5 revision 487700, amaroK from trunk revision 487700, libxine version 1.0.0.

[Bug 119230] memleak in xine engine

by Mark Kretschmann :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From markey web de  2005-12-30 17:08 -------
Hm, xine 1.0.0 is quite old, though. Perhaps a newer version fixes it?

[Bug 119230] memleak in xine engine

by Miguel Angel Alvarez-3 :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From maacruz gmail com  2005-12-30 17:25 -------
I'm using libxine 1.1.1, so it doesn't fixes it.

[Bug 119230] memleak in xine engine

by Bugzilla from webmaster@phpmyforum.de :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From webmaster phpmyforum de  2006-01-07 12:50 -------
Same Problem here with:
- Amarok 1.3.7 (Source)
- KDE 3.5 (Kubuntu)
- Xine 1.1.0

Screenshot of top follows

[Bug 119230] memleak in xine engine

by Bugzilla from webmaster@phpmyforum.de :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From webmaster phpmyforum de  2006-01-07 12:52 -------
Created an attachment (id=14168)
 --> (http://bugs.kde.org/attachment.cgi?id=14168&action=view)
top screenshot

[Bug 119230] memleak in xine engine

by Miguel Angel Alvarez-3 :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From maacruz gmail com  2006-02-22 21:56 -------
Problem still present on amarok 1.4beta1

[Bug 119230] Memleak in xine engine with crossfading

by Mark Kretschmann :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         
markey web de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      everconfirmed|0                           |1
            Summary|memleak in xine engine      |Memleak in xine engine with
                   |                            |crossfading

[Bug 119230] Memleak in xine engine with crossfading

by Mark Kretschmann :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         
markey web de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From markey web de  2006-03-15 18:23 -------
SVN commit 518913 by markey:

Fix a huge memory leak when using xine-engine with crossfading. IROCKSOHARD!

BUG: 119230



 M  +2 -0      ChangeLog  
 M  +8 -2      src/engine/xine/xine-scope.c  


--- trunk/extragear/multimedia/amarok/ChangeLog #518912:518913
 @ -21,6 +21,8  @
       Peter C. Ndikuwera <pndiku gmail com>  (BR 118304)
 
   BUGFIXES:
+    * Fixed a huge memory leak when using xine-engine with crossfading.
+      (BR 119230)
     * Sometimes iRiver devices would crash upon disconnecting.
     * Adjust the Astraweb lyrics script for a layout change on the site. Patch
       by Andrew Turner <andrewturner512+kdebugs googlemail com>. (BR 123636)
--- trunk/extragear/multimedia/amarok/src/engine/xine/xine-scope.c #518912:518913
 @ -106,15 +106,21  @
 scope_dispose( post_plugin_t *this )
 {
     MyNode *list = ((scope_plugin_t*)this)->list;
-    MyNode *prev, *node;
+    MyNode *prev;
+    MyNode *node = list->next;
 
-    for( node = list; node != list; node = prev ) {
+    /* Free all elements of the list (a ring buffer) */
+    do {
         prev = node->next;
 
         free( node->mem );
         free( node );
+
+        node = prev;
     }
+    while( node != list );
 
+
     free( this );
 }

[Bug 119230] Memleak in xine engine with crossfading

by Mark Kretschmann :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From markey web de  2006-03-16 11:49 -------
SVN commit 519133 by markey:

Don't forget to free the first element of the buffer.

CCBUG: 119230



 M  +1 -1      xine-scope.c  


--- trunk/extragear/multimedia/amarok/src/engine/xine/xine-scope.c #519132:519133
 @ -107,7 +107,7  @
 {
     MyNode *list = ((scope_plugin_t*)this)->list;
     MyNode *prev;
-    MyNode *node = list->next;
+    MyNode *node = list;
 
     /* Free all elements of the list (a ring buffer) */
     do {

[Bug 119230] Memleak in xine engine with crossfading

by Mark Kretschmann :: Rate this Message:

| View Threaded | Show Only this Message

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119230         




------- Additional Comments From markey web de  2006-03-17 14:02 -------
SVN commit 519522 by markey:

Backport xine engine leak fix.

CCBUG: 119230



 M  +2 -0      ChangeLog  
 M  +8 -2      src/engine/xine/xine-scope.c  


--- branches/stable/extragear/multimedia/amarok/ChangeLog #519521:519522
 @ -8,6 +8,8  @
     * Support for libtunepimp 0.4. (BR 94988)
 
   BUGFIXES:
+    * Fixed a huge memory leak when using xine-engine with crossfading.
+      (BR 119230)
     * Fix memory leak in the helix engine when the player and playlist are
       not visible.
     * Stream with URLs containing "&" wouldn't be correctly saved.
--- branches/stable/extragear/multimedia/amarok/src/engine/xine/xine-scope.c #519521:519522
 @ -106,15 +106,21  @
 scope_dispose( post_plugin_t *this )
 {
     MyNode *list = ((scope_plugin_t*)this)->list;
-    MyNode *prev, *node;
+    MyNode *prev;
+    MyNode *node = list;
 
-    for( node = list; node != list; node = prev ) {
+    /* Free all elements of the list (a ring buffer) */
+    do {
         prev = node->next;
 
         free( node->mem );
         free( node );
+
+        node = prev;
     }
+    while( node != list );
 
+
     free( this );
 }