| 
					
				 | 
			
			
				@@ -73,9 +73,9 @@ extern int dmalloc_free(const char *file, const int line, void *pnt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }                                               \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   STMT_END 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else /* !(defined(USE_DMALLOC)) */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** Release memory allocated by tor_malloc, tor_realloc, tor_strdup, etc. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Unlike the free() function, tor_free() will still work on NULL pointers, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * and it sets the pointer value to NULL after freeing it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** Release memory allocated by tor_malloc, tor_realloc, tor_strdup, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * etc.  Unlike the free() function, the tor_free() macro sets the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * pointer value to NULL after freeing it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * This is a macro.  If you need a function pointer to release memory from 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * tor_malloc(), use tor_free_(). 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -88,17 +88,13 @@ extern int dmalloc_free(const char *file, const int line, void *pnt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef __GNUC__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define tor_free(p) STMT_BEGIN                                 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     typeof(&(p)) tor_free__tmpvar = &(p);                      \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (PREDICT_LIKELY((*tor_free__tmpvar)!=NULL)) {           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      raw_free(*tor_free__tmpvar);                             \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      *tor_free__tmpvar=NULL;                                  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }                                                          \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    raw_free(*tor_free__tmpvar);                               \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    *tor_free__tmpvar=NULL;                                    \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   STMT_END 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define tor_free(p) STMT_BEGIN                                 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (PREDICT_LIKELY((p)!=NULL)) {                           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      raw_free(p);                                             \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (p)=NULL;                                                \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }                                                          \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  raw_free(p);                                                 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (p)=NULL;                                                    \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   STMT_END 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif /* defined(USE_DMALLOC) */ 
			 |