153 #define fill_with_garbage(block,size) memset((void *)(block), 0xBB, (size)) 
  157 #endif // __cplusplus 
  159 template <
typename T>
 
  162   memset(static_cast<void *>(block), 0xBB, (size));
 
  168 #endif // __cplusplus 
  170 #endif // !USE_MACROS 
  174 #define fill_with_garbage(block,size) { } 
  178 #define MISCELLANEOUS_MEM_USAGE  0 
  179 #define HASH_TABLE_MEM_USAGE     1 
  180 #define STRING_MEM_USAGE         2 
  181 #define POOL_MEM_USAGE           3 
  182 #define STATS_OVERHEAD_MEM_USAGE 4 
  184 #define NUM_MEM_USAGE_CODES 5 
  203 #define savestring(x) (char *) strcpy ((char *)(malloc (strlen (x) + 1)), (x)) 
  204 #define memsize_of_growable_string(gs) (*((int *)(gs))) 
  205 #define length_of_growable_string(gs) (*(((int *)(gs))+1)) 
  206 #define text_of_growable_string(gs) (((char *)(gs)) + 2*sizeof(int *)) 
  214   return strcpy(static_cast<char *>(malloc (strlen (x) + 1)), (x));
 
  219   return (*((
int *)(gs)));
 
  224   return (*(((
int *)(gs))+1));
 
  229   return (((
char *)(gs)) + 2*
sizeof(
int *));
 
  242 #define MAX_POOL_NAME_LENGTH 15 
  259 #ifdef MEMORY_POOL_STATS 
  263 #define increment_used_count(p) {(p)->used_count++;} 
  264 #define decrement_used_count(p) {(p)->used_count--;} 
  272 template <
typename P>
 
  278 template <
typename P>
 
  293 #define increment_used_count(p) { } 
  294 #define decrement_used_count(p) { } 
  301 #define MEM_POOLS_ENABLED 1 
  303 template <
typename T>
 
  304 inline void allocate_with_pool(
agent* thisAgent, 
memory_pool* p, T** dest_item_pointer)
 
  307 #if MEM_POOLS_ENABLED 
  311   *(dest_item_pointer) = static_cast< T* > ((p)->free_list);
 
  318   (p)->
free_list =  *(
void * *)(*(dest_item_pointer));
 
  323 #else // !MEM_POOLS_ENABLED 
  327    *dest_item_pointer = 
static_cast< T * 
> (malloc(
sizeof(T)));
 
  333 #endif // !MEM_POOLS_ENABLED 
  336 template <
typename T>
 
  337 inline void free_with_pool(
memory_pool* p, T * item)
 
  339 #if MEM_POOLS_ENABLED 
  345 #else // !MEM_POOLS_ENABLED 
  353 #endif // !MEM_POOLS_ENABLED 
  376 #define insert_at_head_of_dll(header,item,next_field_name,prev_field_name) { \ 
  377   ((item)->next_field_name) = (header) ; \ 
  378   ((item)->prev_field_name) = NIL ; \ 
  379   if (header) ((header)->prev_field_name) = (item) ; \ 
  380   (header) = (item) ; } 
  394 #define remove_from_dll(header,item,next_field_name,prev_field_name) { \ 
  395   if ((item)->next_field_name) \ 
  396     ((item)->next_field_name->prev_field_name) = ((item)->prev_field_name); \ 
  397   if ((item)->prev_field_name) { \ 
  398     ((item)->prev_field_name->next_field_name) = ((item)->next_field_name); \ 
  400     (header) = ((item)->next_field_name); \ 
  418 #define fast_remove_from_dll(header,item,typename,next_field_name,prev_field_name) { \ 
  419   typename *tempnext, *tempprev; \ 
  420   tempnext = (item)->next_field_name; \ 
  421   tempprev = (item)->prev_field_name; \ 
  422   if (tempnext) tempnext->prev_field_name = tempprev; \ 
  424     tempprev->next_field_name = tempnext; \ 
  426     (header) = tempnext; } } 
  479 typedef uint32_t ((*hash_function)(
void *item, 
short num_bits));