summaryrefslogtreecommitdiff
path: root/src/xine-engine
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-11 14:26:34 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-11 14:26:34 +0100
commit448923a2d401f3e21eb586f50c1ca9e2dd6259d9 (patch)
tree8d58460936c03f7743926019f132399dcf9b07ae /src/xine-engine
parente2a10c5fdaed1f45040fb3d737ab79f0e5d774d9 (diff)
downloadxine-lib-448923a2d401f3e21eb586f50c1ca9e2dd6259d9.tar.gz
xine-lib-448923a2d401f3e21eb586f50c1ca9e2dd6259d9.tar.bz2
Define free() as the default dispose function for plugin classes.
Most plugin classes in xine define a dispose function simply to call free(), but free() is ABI-compatible with our dispose functions, so add a macro that allows to pass free() directly as dispose function. It's an opt-in so that no extra conditional is needed, and plugin authors won't forget about providing a dispose function (if they need to).
Diffstat (limited to 'src/xine-engine')
-rw-r--r--src/xine-engine/audio_decoder.h1
-rw-r--r--src/xine-engine/audio_out.h2
-rw-r--r--src/xine-engine/post.h2
-rw-r--r--src/xine-engine/spu_decoder.h3
-rw-r--r--src/xine-engine/video_decoder.h1
-rw-r--r--src/xine-engine/video_out.h1
6 files changed, 9 insertions, 1 deletions
diff --git a/src/xine-engine/audio_decoder.h b/src/xine-engine/audio_decoder.h
index df8556902..f5a9f506e 100644
--- a/src/xine-engine/audio_decoder.h
+++ b/src/xine-engine/audio_decoder.h
@@ -71,6 +71,7 @@ struct audio_decoder_class_s {
void (*dispose) (audio_decoder_class_t *this);
};
+#define default_audio_decoder_class_dispose (void (*) (audio_decoder_class_t *this))free
struct audio_decoder_s {
diff --git a/src/xine-engine/audio_out.h b/src/xine-engine/audio_out.h
index 32d9d5813..0dffa6620 100644
--- a/src/xine-engine/audio_out.h
+++ b/src/xine-engine/audio_out.h
@@ -261,6 +261,8 @@ struct audio_driver_class_s {
void (*dispose) (audio_driver_class_t *);
};
+#define default_audio_driver_class_dispose (void (*) (audio_driver_class_t *this))free
+
/**
* @brief Initialise the audio_out sync routines
*
diff --git a/src/xine-engine/post.h b/src/xine-engine/post.h
index 940f269e1..1995ca82f 100644
--- a/src/xine-engine/post.h
+++ b/src/xine-engine/post.h
@@ -78,6 +78,8 @@ struct post_class_s {
void (*dispose) (post_class_t *this);
};
+#define default_post_class_dispose (void (*) (post_class_t *this))free
+
struct post_plugin_s {
/* public part of the plugin */
diff --git a/src/xine-engine/spu_decoder.h b/src/xine-engine/spu_decoder.h
index badf15e41..2a7337c71 100644
--- a/src/xine-engine/spu_decoder.h
+++ b/src/xine-engine/spu_decoder.h
@@ -70,7 +70,8 @@ struct spu_decoder_class_s {
*/
void (*dispose) (spu_decoder_class_t *this);
};
-
+
+#define default_spu_decoder_class_dispose (void (*) (spu_decoder_class_t *this))free
struct spu_decoder_s {
diff --git a/src/xine-engine/video_decoder.h b/src/xine-engine/video_decoder.h
index 249b86b4c..ed3386717 100644
--- a/src/xine-engine/video_decoder.h
+++ b/src/xine-engine/video_decoder.h
@@ -71,6 +71,7 @@ struct video_decoder_class_s {
void (*dispose) (video_decoder_class_t *this);
};
+#define default_video_decoder_class_dispose (void (*) (video_decoder_class_t *this))free
struct video_decoder_s {
diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h
index e81947276..39dbe0caa 100644
--- a/src/xine-engine/video_out.h
+++ b/src/xine-engine/video_out.h
@@ -392,6 +392,7 @@ struct video_driver_class_s {
void (*dispose) (video_driver_class_t *self);
};
+#define default_video_driver_class_dispose (void (*) (video_driver_class_t *this))free
typedef struct rle_elem_s {
uint16_t len;