[MPlayer-dev-eng] [PATCH] m_config free memory function fix
Wei Jiang
jiangw98 at yahoo.com
Sat Oct 23 10:56:45 CEST 2004
The memory free function is correctly working, if
called from proper place in mplayer.c, in my case, I
add this function to uninit_player when I need to
clear memory allocated by mconfig.
Wei Jiang
In C:\XBMP\main: "C:\Program
Files\TortoiseCVS\cvs.exe" "-q" "-z6" "diff" "-u" "-r"
"1.10" "m_config.c"
CVSROOT=:pserver:anonymous at mplayerhq.hu:/cvsroot/mplayer
cvs diff: Empty password used - try 'cvs login' with a
real password
Index: m_config.c
===================================================================
RCS file: /cvsroot/mplayer/main/m_config.c,v
retrieving revision 1.10
diff -u -r1.10 m_config.c
--- m_config.c 20 Oct 2004 01:32:56 -0000 1.10
+++ m_config.c 23 Oct 2004 08:49:46 -0000
@@ -32,7 +32,10 @@
#endif
while(i) {
- sl = i->slots;
+ if (i->flags & M_CFG_OPT_ALIAS)
+ sl = NULL;
+ else
+ sl = i->slots;
while(sl) {
m_option_free(i->opt,sl->data);
st = sl->prev;
@@ -43,7 +46,7 @@
free(i->name);
ct = i->next;
free(i);
- ct = i;
+ i = ct;
}
free(config);
}
@@ -147,6 +150,7 @@
// Option with childs -> add them
if(arg->type->flags & M_OPT_TYPE_HAS_CHILD) {
+ co->slots = NULL;
m_option_t *ol = arg->p;
int i;
for(i = 0 ; ol[i].name != NULL ; i++)
@@ -174,6 +178,7 @@
m_option_set(arg,arg->p,sl->data);
}
sl->lvl = 0;
+ sl->prev = NULL;
co->slots =
(m_config_save_slot_t*)calloc(1,sizeof(m_config_save_slot_t)
+ arg->type->size);
co->slots->prev = sl;
co->slots->lvl = config->lvl;
Success, CVS operation completed
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com
More information about the MPlayer-dev-eng
mailing list