misc/objects.c: Don't rely on vlc_object_destroy() to destroy objects, but expects...
authorPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 26 Feb 2008 00:29:12 +0000 (00:29 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 26 Feb 2008 00:29:12 +0000 (00:29 +0000)
commita78e273ec53ff8a6c3993f3deda0b893f8dd709a
treea4eed8e3928e8efb3bcb4accaf4c55767216dc2e
parente769bca04c56a67ab39ee2d2700508a9c5ad8910
misc/objects.c: Don't rely on vlc_object_destroy() to destroy objects, but expects vlc_object_release to do it when the refcount goes to zero.
* Meaning, that when created objects gets a refcount to 1.
* Destroying is instantaneous and we don't have to poll for a few secondss or so to wait until the object's refcount reach 0.
* We now track vlc_object_t's mem leaks when libvlc_global is released (Hard error for now, so they don't get unoticed)
* We fail hard if an object is released with a refcount of 1 without being detached from its parent and its children, to make sure such cases don't go unoticed.
(make test or make check still pass after that one. VLC is known to leak one object when no module is loaded, this must be fixed).
71 files changed:
include/vlc_demux.h
include/vlc_objects.h
modules/access/dv.c
modules/access/dvdnav.c
modules/access_output/bonjour.c
modules/access_output/udp.c
modules/audio_output/directx.c
modules/audio_output/waveout.c
modules/codec/ffmpeg/chroma.c
modules/codec/ffmpeg/encoder.c
modules/demux/flac.c
modules/demux/live555.cpp
modules/demux/mkv.cpp
modules/gui/fbosd.c
modules/gui/skins2/src/dialogs.cpp
modules/misc/audioscrobbler.c
modules/misc/freetype.c
modules/misc/gnutls.c
modules/misc/gtk_main.c
modules/misc/qte_main.cpp
modules/misc/testsuite/test4.c
modules/stream_out/mosaic_bridge.c
modules/stream_out/rtp.c
modules/stream_out/transcode.c
modules/video_filter/atmo/AtmoThread.cpp
modules/video_filter/atmo/atmo.cpp
modules/video_filter/logo.c
modules/video_filter/opencv_wrapper.c
modules/video_output/msw/direct3d.c
modules/video_output/msw/directx.c
modules/video_output/msw/glwin32.c
modules/video_output/msw/wingdi.c
modules/video_output/opengl.c
modules/video_output/qte/qte.cpp
modules/visualization/galaktos/plugin.c
modules/visualization/goom.c
src/audio_output/common.c
src/audio_output/filters.c
src/audio_output/input.c
src/control/mediacontrol_audio_video.c
src/input/access.c
src/input/decoder.c
src/input/demux.c
src/input/input.c
src/input/mem_stream.c
src/input/meta.c
src/input/stream.c
src/input/vlm.c
src/interface/interaction.c
src/interface/interface.c
src/libvlc-common.c
src/libvlc.sym
src/misc/beos_specific.cpp
src/misc/devices.c
src/misc/image.c
src/misc/objects.c
src/misc/threads.c
src/misc/update.c
src/misc/xml.c
src/modules/modules.c
src/network/httpd.c
src/network/tls.c
src/osd/osd.c
src/playlist/engine.c
src/playlist/services_discovery.c
src/playlist/thread.c
src/stream_output/announce.c
src/stream_output/sap.c
src/stream_output/stream_output.c
src/video_output/video_output.c
src/video_output/vout_subpictures.c