From: Norbert S. <nsc...@us...> - 2007-01-17 17:09:47
|
Update of /cvsroot/jmax/jmax/fts In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv14326/fts Modified Files: class.c expression.c Log Message: - class.c: fixed memory leak bug in message dispatcher - expression.c: fixed expression evaluation in case of void atoms returned for []-operator (was retirn fts_ignore) - array.h: minor doxygen related fix Index: expression.c =================================================================== RCS file: /cvsroot/jmax/jmax/fts/expression.c,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** expression.c 25 Aug 2006 13:07:13 -0000 1.78 --- expression.c 17 Jan 2007 17:09:41 -0000 1.79 *************** *** 460,470 **** } - if(fts_is_void(&ret)) - return fts_ignore; - - fts_atom_refer(&ret); - expression_stack_pop_frame( exp); ! expression_stack_push(exp, &ret); } else --- 460,470 ---- } expression_stack_pop_frame( exp); ! ! if(!fts_is_void(&ret)) ! { ! fts_atom_refer(&ret); ! expression_stack_push( exp, &ret); ! } } else Index: class.c =================================================================== RCS file: /cvsroot/jmax/jmax/fts/class.c,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** class.c 18 Sep 2006 14:44:18 -0000 1.74 --- class.c 17 Jan 2007 17:09:41 -0000 1.75 *************** *** 318,328 **** { method_key_t *method_key = method_key_new((fts_symbol_t)selector, type); fts_set_object(&k, (fts_object_t *) method_key); if(fts_hashtable_get (cl->methods, &k, &a)) ! return (fts_method_t)fts_get_pointer(&a); fts_object_destroy((fts_object_t *)method_key); } --- 318,331 ---- { method_key_t *method_key = method_key_new((fts_symbol_t)selector, type); + fts_method_t method = NULL; fts_set_object(&k, (fts_object_t *) method_key); if(fts_hashtable_get (cl->methods, &k, &a)) ! method = (fts_method_t)fts_get_pointer(&a); fts_object_destroy((fts_object_t *)method_key); + + return method; } |