Back to index

plt-scheme  4.2.1
Public Member Functions | Public Attributes | Static Private Member Functions
gc_cleanup Class Reference

#include <gc_cpp.h>

Inheritance diagram for gc_cleanup:
Inheritance graph
[legend]
Collaboration diagram for gc_cleanup:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 gc_cleanup ()
virtual ~gc_cleanup ()
 gc_cleanup ()
 gc_cleanup (int cleanup)
virtual ~gc_cleanup ()
void install_cleanup ()
voidoperator new (size_t size)
voidoperator new (size_t size, GCPlacement gcp)
voidoperator new (size_t size, void *p)
voidoperator new (size_t size)
voidoperator new (size_t size, GCPlacement gcp)
void operator delete (void *obj)
void operator delete (void *, void *)
void operator delete (void *obj)
voidoperator new[] (size_t size)
voidoperator new[] (size_t size, GCPlacement gcp)
voidoperator new[] (size_t size, void *p)
void operator delete[] (void *obj)
void operator delete[] (void *, void *)

Public Attributes

void__gc_external

Static Private Member Functions

static void GC_cdecl cleanup (void *obj, void *clientData)

Detailed Description

Definition at line 192 of file gc_cpp.h.


Constructor & Destructor Documentation

gc_cleanup::gc_cleanup ( void  ) [inline]

Definition at line 321 of file gc_cpp.h.

                              {
    GC_finalization_proc oldProc;
    void* oldData;
    void* base = GC_base( (void *) this );
    if (0 != base)  {
      // Don't call the debug version, since this is a real base address.
      GC_register_finalizer_ignore_self( 
        base, (GC_finalization_proc)cleanup, (void*) ((char*) this - (char*) base), 
        &oldProc, &oldData );
      if (0 != oldProc) {
        GC_register_finalizer_ignore_self( base, oldProc, oldData, 0, 0 );}}}

Here is the call graph for this function:

Here is the caller graph for this function:

gc_cleanup::~gc_cleanup ( void  ) [inline, virtual]

Definition at line 315 of file gc_cpp.h.

                               {
    GC_register_finalizer_ignore_self( GC_base(this), 0, 0, 0, 0 );}

Here is the call graph for this function:

gc_cleanup::gc_cleanup ( ) [inline]
gc_cleanup::gc_cleanup ( int  cleanup) [inline]

Definition at line 187 of file wxGC.h.

Here is the call graph for this function:

virtual gc_cleanup::~gc_cleanup ( ) [inline, virtual]

Member Function Documentation

void gc_cleanup::cleanup ( void obj,
void clientData 
) [inline, static, private]

Definition at line 318 of file gc_cpp.h.

                                                        {
    ((gc_cleanup*) ((char*) obj + (ptrdiff_t) displ))->~gc_cleanup();}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 99 of file wxGC.cxx.

{
  GC_finalization_proc old_fn;
  void *old_data;

# ifdef MZ_PRECISE_GC
#  define ALLOW_NON_BASE 0
#  define CHECK_BASE 0
# else
#  ifdef wx_xt
#   define ALLOW_NON_BASE 0
#   define CHECK_BASE 0
#  else
#   ifdef WIN32
#    define ALLOW_NON_BASE 0
#    define CHECK_BASE 1
#    define CRASH_ON_NONBASE 1
#   else
#    define ALLOW_NON_BASE 1
#    define CHECK_BASE 0
#   endif
#  endif
# endif

# if CHECK_BASE || ALLOW_NON_BASE
  if (GC_base(this) != (void *)this) {
#  if ALLOW_NON_BASE
    return;
#  else
#   ifdef CRASH_ON_NONBASE
    *(long *)0x0 = 1;
#   else
    printf("Clean-up object is not the base object\n");
    abort();
#   endif
#  endif
  }
# endif

  GC_register_finalizer_ignore_self(gcOBJ_TO_PTR(this), 
                                CAST_GCP GC_cleanup, NULL, 
                                CAST_GCPP &old_fn, &old_data);

# if CHECK_BASE
  if (old_fn) {
#  ifdef CRASH_ON_NONBASE
       *(long *)0x0 = 1;
#  else
    printf("Object already has a clean-up\n");
    abort();
#  endif
  }
# endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

void gc::operator delete ( void obj) [inline, inherited]
void gc::operator delete ( void obj) [inline, inherited]

Definition at line 287 of file gc_cpp.h.

                                           {
    GC_FREE( obj );}

Here is the caller graph for this function:

void gc::operator delete ( void ,
void  
) [inline, inherited]

Definition at line 291 of file gc_cpp.h.

{}
void gc::operator delete[] ( void obj) [inline, inherited]

Definition at line 305 of file gc_cpp.h.

                                             {
    gc::operator delete( obj );}

Here is the call graph for this function:

void gc::operator delete[] ( void ,
void  
) [inline, inherited]

Definition at line 309 of file gc_cpp.h.

{}
void* gc::operator new ( size_t  size) [inline, inherited]
void* gc::operator new ( size_t  size,
GCPlacement  gcp 
) [inline, inherited]
void * gc::operator new ( size_t  size) [inline, inherited]

Definition at line 273 of file gc_cpp.h.

                                           {
    return GC_MALLOC( size );}

Here is the caller graph for this function:

void * gc::operator new ( size_t  size,
GCPlacement  gcp 
) [inline, inherited]

Definition at line 276 of file gc_cpp.h.

                                                            {
    if (gcp == UseGC) 
        return GC_MALLOC( size );
    else if (gcp == PointerFreeGC)
       return GC_MALLOC_ATOMIC( size );
    else
        return GC_MALLOC_UNCOLLECTABLE( size );}
void * gc::operator new ( size_t  size,
void p 
) [inline, inherited]

Definition at line 284 of file gc_cpp.h.

                                                    {
    return p;}
void * gc::operator new[] ( size_t  size) [inline, inherited]

Definition at line 296 of file gc_cpp.h.

                                             {
    return gc::operator new( size );}

Here is the call graph for this function:

void * gc::operator new[] ( size_t  size,
GCPlacement  gcp 
) [inline, inherited]

Definition at line 299 of file gc_cpp.h.

                                                              {
    return gc::operator new( size, gcp );}

Here is the call graph for this function:

void * gc::operator new[] ( size_t  size,
void p 
) [inline, inherited]

Definition at line 302 of file gc_cpp.h.

                                                      {
    return p;}

Member Data Documentation

Definition at line 146 of file wxGC.h.


The documentation for this class was generated from the following files: