00001 #line 388 "./lpsrc/flx_gc.pak"
00002
00003
00004
00005
00006 namespace flx {
00007 namespace gc {
00008 namespace generic {
00009
00010
00011 struct frame_t
00012 {
00013 gc_shape_t *shape;
00014 unsigned long n_objects;
00015 unsigned long n_used;
00016 frame_t *next;
00017 frame_t *prev;
00018 collector_t *collector;
00019 bool garbage;
00020 bool finalised;
00021 };
00022
00023 }}}
00024
00025
00026
00027 #define _ROUNDUP(i,n) ((i + n - 1) / n * n)
00028 #define _ALIGN(i) _ROUNDUP(i,FLX_MAX_ALIGN)
00029
00030 #define FRAMESIZE int(_ALIGN(sizeof(flx::gc::generic::frame_t)))
00031 #define FRAME_TO_CLIENT(p) \
00032 ((void*)((unsigned char*)(void*)p + FRAMESIZE))
00033 #define CLIENT_TO_FRAME(p) \
00034 ((frame_t*)(void*)((unsigned char*)p - FRAMESIZE))
00035
00036