mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80429 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			33 lines
		
	
	
		
			805 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			805 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __MEM_H
 | |
| #define __MEM_H
 | |
| 
 | |
| #ifdef __HAVE_LEAK_DETECTION
 | |
| 
 | |
| #define NAMEOF(v)       #v
 | |
| #define xmalloc(x) MM_malloc(x, __FILE__, __LINE__)
 | |
| #define xfree(x) MM_free(x, __FILE__, __LINE__, NAMEOF(x))
 | |
| #define xstrdup(x) MM_strdup(x, __FILE__, __LINE__)
 | |
| #define xrealloc(x, y) MM_realloc(x, y, __FILE__, __LINE__)
 | |
| 
 | |
| TAILQ_HEAD(MM_chunks, MM_mem_chunk);
 | |
| 
 | |
| struct MM_mem_chunk {
 | |
| 	void *address;
 | |
| 	const char *filename;
 | |
| 	uint32_t line;
 | |
| 	size_t size;
 | |
| 	
 | |
| 	TAILQ_ENTRY(MM_mem_chunk) next;
 | |
| };
 | |
| 
 | |
| void *MM_malloc(size_t, char *, int);
 | |
| void *MM_realloc(void *, size_t, char *, int);
 | |
| void MM_free(void *, char *, int, char *);
 | |
| char *MM_strdup(const char *, char *, int);
 | |
| void MM_leakd_init(void);
 | |
| void MM_leakd_printallocated(void);
 | |
| void MM_leakd_flush(void);
 | |
| 
 | |
| #endif /* __HAVE_LEAK_DETECTION */
 | |
| #endif /* ! HAVE_MEM_H */
 |