summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c54
1 files changed, 19 insertions, 35 deletions
diff --git a/vm.c b/vm.c
index 7591f97130..341b04de09 100644
--- a/vm.c
+++ b/vm.c
@@ -350,57 +350,41 @@ ruby_vm_run_at_exit_hooks(rb_vm_t *vm)
static void
env_mark(void * const ptr)
{
- RUBY_MARK_ENTER("env");
- if (ptr) {
- const rb_env_t * const env = ptr;
+ const rb_env_t * const env = ptr;
- /* TODO: should mark more restricted range */
- RUBY_GC_INFO("env->env\n");
- rb_gc_mark_values((long)env->env_size, env->env);
+ /* TODO: should mark more restricted range */
+ RUBY_GC_INFO("env->env\n");
+ rb_gc_mark_values((long)env->env_size, env->env);
- RUBY_GC_INFO("env->prev_envval\n");
- RUBY_MARK_UNLESS_NULL(env->prev_envval);
- RUBY_MARK_UNLESS_NULL(env->block.self);
- RUBY_MARK_UNLESS_NULL(env->block.proc);
+ RUBY_GC_INFO("env->prev_envval\n");
+ RUBY_MARK_UNLESS_NULL(env->prev_envval);
+ RUBY_MARK_UNLESS_NULL(env->block.self);
+ RUBY_MARK_UNLESS_NULL(env->block.proc);
- if (env->block.iseq) {
- if (BUILTIN_TYPE(env->block.iseq) == T_NODE) {
- RUBY_MARK_UNLESS_NULL((VALUE)env->block.iseq);
- }
- else {
- RUBY_MARK_UNLESS_NULL(env->block.iseq->self);
- }
+ if (env->block.iseq) {
+ if (BUILTIN_TYPE(env->block.iseq) == T_NODE) {
+ RUBY_MARK_UNLESS_NULL((VALUE)env->block.iseq);
+ }
+ else {
+ RUBY_MARK_UNLESS_NULL(env->block.iseq->self);
}
}
RUBY_MARK_LEAVE("env");
}
-static void
-env_free(void * const ptr)
-{
- RUBY_FREE_ENTER("env");
- if (ptr) {
- ruby_xfree(ptr);
- }
- RUBY_FREE_LEAVE("env");
-}
-
static size_t
env_memsize(const void *ptr)
{
- if (ptr) {
- const rb_env_t * const env = ptr;
- size_t size = sizeof(rb_env_t);
+ const rb_env_t * const env = ptr;
+ size_t size = sizeof(rb_env_t);
- size += (env->env_size - 1) * sizeof(VALUE);
- return size;
- }
- return 0;
+ size += (env->env_size - 1) * sizeof(VALUE);
+ return size;
}
static const rb_data_type_t env_data_type = {
"VM/env",
- {env_mark, env_free, env_memsize,},
+ {env_mark, RUBY_TYPED_DEFAULT_FREE, env_memsize,},
NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
};