Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: libtransmission/utils.c
- ===================================================================
- --- libtransmission/utils.c (版本 13285)
- +++ libtransmission/utils.c (工作副本)
- @@ -328,24 +328,63 @@
- /***
- ****
- ***/
- -
- +tr_lock* tr_glockMalloc = NULL;
- void*
- tr_malloc( size_t size )
- {
- - return size ? malloc( size ) : NULL;
- + void * p = NULL;
- + if(size){
- + if(!tr_glockMalloc){
- + tr_glockMalloc = tr_lockNew();
- + }
- + tr_lockLock(tr_glockMalloc);
- + p = malloc(size);
- + tr_lockUnlock(tr_glockMalloc);
- + }
- + return p;
- + //return size ? malloc( size ) : NULL;
- }
- void*
- tr_malloc0( size_t size )
- {
- + // void * p = NULL;
- + // if(size){
- + // if(!tr_glockMalloc){
- + // tr_glockMalloc = tr_lockNew();
- + // }
- + // tr_lockLock(tr_glockMalloc);
- + // p = calloc(1,size);
- + // tr_lockUnlock(tr_glockMalloc);
- + // }
- + // return p;
- return size ? calloc( 1, size ) : NULL;
- }
- +void*
- +tr_realloc( void *ptr,size_t size )
- +{
- + void * p = NULL;
- + if(size){
- + if(!tr_glockMalloc){
- + tr_glockMalloc = tr_lockNew();
- + }
- + tr_lockLock(tr_glockMalloc);
- + p = realloc(ptr,size);
- + tr_lockUnlock(tr_glockMalloc);
- + }
- + return p;
- + //return size ? malloc( size ) : NULL;
- +}
- +
- void
- tr_free( void * p )
- {
- - if( p != NULL )
- + if( p != NULL ){
- + tr_lockLock(tr_glockMalloc);
- free( p );
- + tr_lockUnlock(tr_glockMalloc);
- + }
- }
- void*
- Index: libtransmission/utils.h
- ===================================================================
- --- libtransmission/utils.h (版本 13285)
- +++ libtransmission/utils.h (工作副本)
- @@ -292,6 +292,8 @@
- /** @brief Portability wrapper around malloc() in which `0' is a safe argument */
- void* tr_malloc( size_t size );
- +
- +void* tr_realloc( void *ptr,size_t size );
- /** @brief Portability wrapper around calloc() in which `0' is a safe argument */
- void* tr_malloc0( size_t size );
- Index: libtransmission/trevent.c
- ===================================================================
- --- libtransmission/trevent.c (版本 13285)
- +++ libtransmission/trevent.c (工作副本)
- @@ -262,6 +262,7 @@
- session->events = NULL;
- + event_set_mem_functions(tr_malloc,tr_realloc,tr_free);
- eh = tr_new0( tr_event_handle, 1 );
- eh->lock = tr_lockNew( );
- pipe( eh->fds );
- Index: daemon/my-valgrind.sh
- ===================================================================
- --- daemon/my-valgrind.sh (版本 13285)
- +++ daemon/my-valgrind.sh (工作副本)
- @@ -2,4 +2,4 @@
- export G_SLICE=always-malloc
- export G_DEBUG=gc-friendly
- export GLIBCXX_FORCE_NEW=1
- -valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=64 --log-file=x-valgrind --show-reachable=yes ./transmission-daemon -f
- +valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=32 --log-file=x-valgrind --show-reachable=yes /usr/local/bin/transmission-daemon
- Index: daemon/daemon.c
- ===================================================================
- --- daemon/daemon.c (版本 13285)
- +++ daemon/daemon.c (工作副本)
- @@ -471,13 +471,13 @@
- return 0;
- }
- - if( !foreground && tr_daemon( true, false ) < 0 )
- - {
- - char buf[256];
- - tr_snprintf( buf, sizeof( buf ), "Failed to daemonize: %s", tr_strerror( errno ) );
- - printMessage( logfile, TR_MSG_ERR, MY_NAME, buf, __FILE__, __LINE__ );
- - exit( 1 );
- - }
- + //if( !foreground && tr_daemon( true, false ) < 0 )
- + //{
- + // char buf[256];
- + // tr_snprintf( buf, sizeof( buf ), "Failed to daemonize: %s", tr_strerror( errno ) );
- + // printMessage( logfile, TR_MSG_ERR, MY_NAME, buf, __FILE__, __LINE__ );
- + // exit( 1 );
- + //}
- /* start the session */
- tr_formatter_mem_init( MEM_K, MEM_K_STR, MEM_M_STR, MEM_G_STR, MEM_T_STR );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement