summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-13 16:22:59 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-13 16:22:59 +0000
commit95efc9ce4778b70c7d5bf49606e364150be0af9e (patch)
treef5a70cd299c006aa0acaa931945eed8fa51319a5
parent30f8042aeaabebc1a58404ae928a0ab1933f6af1 (diff)
downloadmpv-95efc9ce4778b70c7d5bf49606e364150be0af9e.tar.bz2
mpv-95efc9ce4778b70c7d5bf49606e364150be0af9e.tar.xz
fixed small memleaks
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13633 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libao2/audio_out.c22
-rw-r--r--libvo/font_load_ft.c6
2 files changed, 20 insertions, 8 deletions
diff --git a/libao2/audio_out.c b/libao2/audio_out.c
index b51449a0ae..d05d4d7d9c 100644
--- a/libao2/audio_out.c
+++ b/libao2/audio_out.c
@@ -137,20 +137,26 @@ ao_functions_t* init_best_audio_out(char** ao_list,int use_plugin,int rate,int c
// first try the preferred drivers, with their optional subdevice param:
if(ao_list && ao_list[0])
while(ao_list[0][0]){
- char* ao=strdup(ao_list[0]);
+ char* ao=ao_list[0];
+ int ao_len;
if (strncmp(ao, "alsa9", 5) == 0 || strncmp(ao, "alsa1x", 6) == 0) {
mp_msg(MSGT_AO, MSGL_FATAL, MSGTR_AO_ALSA9_1x_Removed);
- free(ao);
exit_player(NULL);
}
+ if (ao_subdevice) {
+ free(ao_subdevice);
+ ao_subdevice = NULL;
+ }
ao_subdevice=strchr(ao,':');
if(ao_subdevice){
- ao_subdevice[0]=0;
- ++ao_subdevice;
+ ao_len = ao_subdevice - ao;
+ ao_subdevice = strdup(&ao[ao_len + 1]);
}
+ else
+ ao_len = strlen(ao);
for(i=0;audio_out_drivers[i];i++){
ao_functions_t* audio_out=audio_out_drivers[i];
- if(!strcmp(audio_out->info->short_name,ao)){
+ if(!strncmp(audio_out->info->short_name,ao,ao_len)){
// name matches, try it
if(use_plugin){
audio_out_plugin.control(AOCONTROL_SET_PLUGIN_DRIVER,audio_out);
@@ -161,12 +167,14 @@ ao_functions_t* init_best_audio_out(char** ao_list,int use_plugin,int rate,int c
}
}
// continue...
- free(ao);
++ao_list;
if(!(ao_list[0])) return NULL; // do NOT fallback to others
}
+ if (ao_subdevice) {
+ free(ao_subdevice);
+ ao_subdevice = NULL;
+ }
// now try the rest...
- ao_subdevice=NULL;
for(i=0;audio_out_drivers[i];i++){
ao_functions_t* audio_out=audio_out_drivers[i];
if(use_plugin){
diff --git a/libvo/font_load_ft.c b/libvo/font_load_ft.c
index dd86172e2a..1e88454ca5 100644
--- a/libvo/font_load_ft.c
+++ b/libvo/font_load_ft.c
@@ -882,10 +882,12 @@ void free_font_desc(font_desc_t *desc)
if (desc->pic_a[i]) {
if (desc->pic_a[i]->bmp) free(desc->pic_a[i]->bmp);
if (desc->pic_a[i]->pal) free(desc->pic_a[i]->pal);
+ free (desc->pic_a[i]);
}
if (desc->pic_b[i]) {
if (desc->pic_b[i]->bmp) free(desc->pic_b[i]->bmp);
if (desc->pic_b[i]->pal) free(desc->pic_b[i]->pal);
+ free (desc->pic_b[i]);
}
}
@@ -909,7 +911,9 @@ static int load_sub_face(char *name, FT_Face *face)
if (name) err = FT_New_Face(library, name, 0, face);
if (err) {
- err = FT_New_Face(library, get_path("subfont.ttf"), 0, face);
+ char *font_file = get_path("subfont.ttf");
+ err = FT_New_Face(library, font_file, 0, face);
+ free(font_file);
if (err) {
err = FT_New_Face(library, MPLAYER_DATADIR "/subfont.ttf", 0, face);
if (err) {