[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