Main Page   Reference Manual   Namespace List   Compound List   Namespace Members   Compound Members   File Members  

Invisible Allocations
[Overview Of Allocated Memory]

Collaboration diagram for Invisible Allocations:

Functions

void libcwd::make_invisible (void const *void_ptr)
 Make allocation pointed to by ptr invisible.

The allocation pointed to by ptr is made invisible; it won't show up anymore in the overview of allocated memory.

void libcwd::make_all_allocations_invisible_except (void const *ptr)
 Make all current allocations invisible except the given pointer.

All allocations, except the given pointer, are made invisible; they won't show up anymore in the overview of allocated memory.

void libcwd::make_exit_function_list_invisible (void)
 Make allocations done in libc.so:__new_exitfn invisible.

This makes the allocation done in __new_exitfn (libc.so) invisible because it is not freed until after all __cxa_atexit functions have been called and would therefore always falsely trigger a memory leak detection. This function can be called first thing in main().

void libcwd::set_invisible_on (void)
 Make all future allocations invisible.

All following allocations are made invisible; they won't show up anymore in the overview of allocated memory.

void libcwd::set_invisible_off (void)
 Cancel a call to set_invisible_on.

See set_invisible_on.


Detailed Description

Allocated memory blocks can be made invisible: They won't show up in the overview of allocated memory anymore.  Even more, the corresponding alloc_ct is destroyed: find_alloc will not find them anymore.  There is no other effect, test_delete will still work and they still can be deleted in the normal way.


Function Documentation

void libcwd::make_all_allocations_invisible_except ( void const *  ptr  ) 

Make all current allocations invisible except the given pointer.

All allocations, except the given pointer, are made invisible; they won't show up anymore in the overview of allocated memory.

If you want to make all allocations invisible, just pass NULL as parameter.

See also:
Invisible Allocations

Overview Of Allocated Memory

Example:

void libcwd::make_exit_function_list_invisible ( void   ) 

Make allocations done in libc.so:__new_exitfn invisible.

This makes the allocation done in __new_exitfn (libc.so) invisible because it is not freed until after all __cxa_atexit functions have been called and would therefore always falsely trigger a memory leak detection. This function can be called first thing in main().

See also:
Invisible Allocations

Overview Of Allocated Memory

Example:

References libcwd::make_invisible().

void libcwd::make_invisible ( void const *  void_ptr  ) 

Make allocation pointed to by ptr invisible.

The allocation pointed to by ptr is made invisible; it won't show up anymore in the overview of allocated memory.

See also:
Invisible Allocations

Overview Of Allocated Memory

Example:

References libcwd::channels::dc::core.

Referenced by libcwd::make_exit_function_list_invisible(), and libcwd::marker_ct::~marker_ct().

void libcwd::set_invisible_on ( void   )  [inline]

Make all future allocations invisible.

All following allocations are made invisible; they won't show up anymore in the overview of allocated memory.

See also:
Invisible Allocations

Overview Of Allocated Memory

Example:

 Debug(set_invisible_on());
 gtk_init(&argc, &argv);
 Debug(set_invisible_off());

Note: In the threaded case, this isn't blazing fast (it is in the non-threaded case). You shouldn't use it inside tight loops when using libcwd_r.

Copyright © 2001 - 2004 Carlo Wood.  All rights reserved.