I've removed the axutil_env_free_masked() call, but I still have a leak. Here is the full Insure++ report:
MEMORY LEAK SUMMARY =================== 2 outstanding memory references for 140 bytes. Outstanding allocated memory ---------------------------- 128 bytes 1 chunk allocated in pth_spinlock.c malloc() (interface) _lib_spinlock_create() ../../../../../../../../src/bos/usr/ccs/lib/libpthreads/pth_spinlock.c _rec_mutex_init_19_13() ../../../../../../../src/bos/usr/ccs/lib/libc/rec_mutex.c _rec_mutex_alloc() ../../../../../../../src/bos/usr/ccs/lib/libc/rec_mutex.c _findiop() ../../../../../../../src/bos/usr/ccs/lib/libc/findiop.c sbcra() ../../../../../../../src/bos/usr/ccs/lib/libc/fopen.c fopen() (interface) axutil_file_handler_open() file_handler.c axutil_log_create() log.c axutil_env_create_all() env.c main() env_leak.c 12 bytes 1 chunk allocated in rec_mutex.c malloc() (interface) _rec_mutex_alloc() ../../../../../../../src/bos/usr/ccs/lib/libc/rec_mutex.c _findiop() ../../../../../../../src/bos/usr/ccs/lib/libc/findiop.c sbcra() ../../../../../../../src/bos/usr/ccs/lib/libc/fopen.c fopen() (interface) axutil_file_handler_open() file_handler.c axutil_log_create() log.c axutil_env_create_all() env.c main() env_leak.c -------- Message d'origine-------- De: Nandika Jayawardana [mailto:jayaw...@gmail.com] Date: jeu. 21/01/2010 05 h 58 À: Apache AXIS C User List Objet : Re: How to free axutil environment? You do not need to use axutil_env_free_masked method. calling axutil_env_free should free up the environment. Regarda Nandika 2010/1/20 Olivier Mengué <omen...@oxymel.com> > Hi, > > I'm discovering Axis2/C and I try to write a simple program that does not > leak memory. Without success :( > > What is the proper way to free an environment created with > axutil_env_create_all() ? > > > Here is a sample code that, according to Insure++, leaks 2 blocks of > memory: > > #include <axis2_util.h> > > int main(int argc, char *argv[]) > { > const axutil_env_t *env = NULL; > > env = axutil_env_create_all("env_leak.log", AXIS2_LOG_LEVEL_TRACE); > axutil_env_free_masked((axutil_env_t *) env, > AXIS_ENV_FREE_LOG|AXIS_ENV_FREE_ERROR|AXIS_ENV_FREE_THREADPOOL); > axutil_env_free((axutil_env_t *) env); > return 0; > } > > > Is there any general documentation about how to manage Axis2/C memory? The > doxygen documentation is quite light, and it lacks links to free() function > from the ones that allocate memory. > > > > Olivier Mengué > -- http://nandikajayawardana.blogspot.com/ WSO2 Inc: http://www.wso2.com
<<winmail.dat>>