Ruby 2.0.0p247(2013-06-27revision41674)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Macros | Functions | Variables
gc.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Macros
#define | SET_MACHINE_STACK_END(p) rb_gc_set_stack_end(p)
#define | USE_CONSERVATIVE_STACK_END
#define | RUBY_MARK_FREE_DEBUG 0
#define | RUBY_MARK_ENTER(msg)
#define | RUBY_MARK_LEAVE(msg)
#define | RUBY_FREE_ENTER(msg)
#define | RUBY_FREE_LEAVE(msg)
#define | RUBY_GC_INFO if(0)printf
#define | RUBY_MARK_UNLESS_NULL(ptr) if(RTEST(ptr)){rb_gc_mark(ptr);}
#define | RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);(ptr)=NULL;}
#define | stack_growup_p(x)
#define | STACK_UPPER(x, a, b) (stack_growup_p(x) ? (a) : (b))
#define | STACK_GROW_DIR_DETECTION VALUE stack_grow_dir_detection
#define | STACK_DIR_UPPER(a, b) STACK_UPPER(&stack_grow_dir_detection, (a), (b))
#define | IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0)

## Functions
| NOINLINE (void rb_gc_set_stack_end(VALUE **stack_end_p))
int | ruby_get_stack_grow_direction (volatile VALUE *addr)
size_t | rb_objspace_data_type_memsize (VALUE obj)
void | rb_objspace_reachable_objects_from (VALUE obj, void(func)(VALUE, void *), void *data)
int | rb_objspace_markable_object_p (VALUE obj)
int | rb_objspace_internal_object_p (VALUE obj)
void | rb_objspace_each_objects (int(*callback)(void *start, void *end, size_t stride, void *data), void *data)

## Variables
RUBY_EXTERN int | ruby_stack_grow_direction

## Macro Definition Documentation

#define IS_STACK_DIR_UPPER | ( | ) |  | STACK_DIR_UPPER(1,0)

Definition at line 84 of file gc.h.

#define RUBY_FREE_ENTER | ( |  | msg) |  |

Definition at line 55 of file gc.h.

Referenced by binding_free(), cont_free(), env_free(), fiber_free(), iseq_free(), proc_free(), ruby_vm_destruct(), and thread_free().

#define RUBY_FREE_LEAVE | ( |  | msg) |  |

Definition at line 56 of file gc.h.

Referenced by binding_free(), cont_free(), env_free(), fiber_free(), iseq_free(), proc_free(), ruby_vm_destruct(), and thread_free().

#define RUBY_FREE_UNLESS_NULL | ( |  | ptr) |  | if(ptr){ruby_xfree(ptr);(ptr)=NULL;}

Definition at line 61 of file gc.h.

Referenced by cont_free(), env_free(), iseq_free(), and thread_free().

#define RUBY_GC_INFO if(0)printf

Definition at line 57 of file gc.h.

Referenced by env_mark(), iseq_free(), iseq_mark(), rb_vm_mark(), and thread_free().

#define RUBY_MARK_ENTER | ( |  | msg) |  |

Definition at line 53 of file gc.h.

Referenced by binding_mark(), cont_mark(), env_mark(), fiber_mark(), inst_mark(), iseq_mark(), proc_mark(), rb_thread_mark(), and rb_vm_mark().

#define RUBY_MARK_FREE_DEBUG 0

Definition at line 18 of file gc.h.

#define RUBY_MARK_LEAVE | ( |  | msg) |  |

Definition at line 54 of file gc.h.

Referenced by binding_mark(), cont_mark(), env_mark(), fiber_mark(), inst_mark(), iseq_mark(), proc_mark(), rb_thread_mark(), and rb_vm_mark().

#define RUBY_MARK_UNLESS_NULL | ( |  | ptr) |  | if(RTEST(ptr)){rb_gc_mark(ptr);}

Definition at line 60 of file gc.h.

Referenced by binding_mark(), env_mark(), inst_mark(), iseq_mark(), proc_mark(), rb_thread_mark(), and rb_vm_mark().

#define SET_MACHINE_STACK_END | ( |  | p) |  | rb_gc_set_stack_end(p)

Definition at line 11 of file gc.h.

Referenced by cont_save_machine_stack(), Init_Cont(), and ruby_get_stack_grow_direction().

#define STACK_DIR_UPPER | ( |  | a,
|  |  | b
| ) |  | STACK_UPPER(&stack_grow_dir_detection, (a), (b))

Definition at line 82 of file gc.h.

#define STACK_GROW_DIR_DETECTION VALUE stack_grow_dir_detection

Definition at line 81 of file gc.h.

#define stack_growup_p | ( |  | x) |  |

Value:
( \
(ruby_stack_grow_direction ? \
ruby_stack_grow_direction : \
ruby_get_stack_grow_direction(x)) > 0)

Definition at line 70 of file gc.h.

#define STACK_UPPER | ( |  | x,
|  |  | a,
|  |  | b
| ) |  | (stack_growup_p(x) ? (a) : (b))

Definition at line 74 of file gc.h.

Referenced by ruby_cleanup(), and ruby_stack_length().

#define USE_CONSERVATIVE_STACK_END

Definition at line 12 of file gc.h.

## Function Documentation

NOINLINE | ( | void | rb_gc_set_stack_endVALUE **stack_end_p) |  |

size_t rb_objspace_data_type_memsize | ( | VALUE | obj) |  |

Definition at line 738 of file gc.c.

References RTYPEDDATA_DATA, RTYPEDDATA_P, and RTYPEDDATA_TYPE.

void rb_objspace_each_objects | ( | int(*)(void *start, void *end, size_t stride, void *data) | callback,
|  | void * | data
| ) |  |

int rb_objspace_internal_object_p | ( | VALUE | obj) |  |

Definition at line 1170 of file gc.c.

References internal_object_p().

Referenced by reachable_object_from_i().

int rb_objspace_markable_object_p | ( | VALUE | obj) |  |

Definition at line 2576 of file gc.c.

References markable_object_p().

Referenced by reachable_object_from_i(), and reachable_objects_from().

void rb_objspace_reachable_objects_from | ( | VALUE | obj,
|  | void(func)(VALUE, void *) | ,
|  | void * | data
| ) |  |

Definition at line 3334 of file gc.c.

References func, gc_mark_children(), rb_objspace::mark_func_data, markable_object_p(), and rb_objspace.

Referenced by reachable_objects_from().

int ruby_get_stack_grow_direction | ( | volatile VALUE * | addr) |  |

Definition at line 2267 of file gc.c.

References SET_MACHINE_STACK_END.

## Variable Documentation

RUBY_EXTERN int ruby_stack_grow_direction

Definition at line 68 of file gc.h.