summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--include/ruby/ruby.h2
-rw-r--r--vm_backtrace.c6
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 30dc162f86..8094a10912 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Fri Nov 30 09:38:22 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/ruby.h (RB_GC_GUARD_PTR): add note.
+
+ * vm_backtrace.c (backtrace_to_str_ary): use RB_GC_GUARD() instead of
+ RB_GC_GUARD_PTR() which has no effect.
+ (backtrace_to_location_ary): ditto.
+ (vm_backtrace_to_ary): ditto.
+
Fri Nov 30 09:22:52 2012 Eric Hodel <drbrain@segment7.net>
* lib/rubygems/commands/contents_command.rb: Sort output from command.
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 59d178a6b3..9d74d82625 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -512,6 +512,8 @@ enum ruby_value_type {
static inline int rb_type(VALUE obj);
#define TYPE(x) rb_type((VALUE)(x))
+/* RB_GC_GUARD_PTR() is an intermediate macro, and has no effect by
+ * itself. don't use it directly */
#ifdef __GNUC__
#define RB_GC_GUARD_PTR(ptr) \
__extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
diff --git a/vm_backtrace.c b/vm_backtrace.c
index 97b38bc603..c3c8d0488c 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -512,7 +512,7 @@ backtrace_to_str_ary(VALUE self, long lev, long n)
}
r = backtrace_collect(bt, lev, n, location_to_str_dmyarg, 0);
- RB_GC_GUARD_PTR(&self);
+ RB_GC_GUARD(self);
return r;
}
@@ -559,7 +559,7 @@ backtrace_to_location_ary(VALUE self, long lev, long n)
}
r = backtrace_collect(bt, lev, n, location_create, (void *)self);
- RB_GC_GUARD_PTR(&self);
+ RB_GC_GUARD(self);
return r;
}
@@ -770,7 +770,7 @@ vm_backtrace_to_ary(rb_thread_t *th, int argc, VALUE *argv, int lev_default, int
else {
r = backtrace_to_location_ary(btval, lev, n);
}
- RB_GC_GUARD_PTR(&btval);
+ RB_GC_GUARD(btval);
return r;
}