aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-28 09:02:19 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-28 09:02:19 +0000
commit616f2c43c6e3693957cbecfbfbf9134163c88ef8 (patch)
treeec07de79beb6be2f85c108dde305bf00586f6096
parent43ce5ce1b46707bdd0e5a8a3a7b536530da6d7fa (diff)
downloadruby-616f2c43c6e3693957cbecfbfbf9134163c88ef8.tar.gz
vm_backtrace.c: use long
* vm_backtrace.c (rb_debug_inspector_frame_{class,binding,iseq}_get): use long as index as well as RARRAY_LEN(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--include/ruby/debug.h6
-rw-r--r--vm_backtrace.c12
3 files changed, 19 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 51863f6bbc..0a997ff3e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Mon Jan 28 18:02:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * vm_backtrace.c (rb_debug_inspector_frame_{class,binding,iseq}_get):
+ use long as index as well as RARRAY_LEN().
+
+Mon Jan 28 17:58:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * vm_backtrace.c (rb_debug_inspector_frame_{class,binding,iseq}_get):
+ use long as index as well as RARRAY_LEN().
+
Mon Jan 28 17:51:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* test/ruby/envutil.rb (assert_separately): imply no core dump.
diff --git a/include/ruby/debug.h b/include/ruby/debug.h
index 855aba88ce..3cdf60a754 100644
--- a/include/ruby/debug.h
+++ b/include/ruby/debug.h
@@ -31,9 +31,9 @@ typedef struct rb_debug_inspector_struct rb_debug_inspector_t;
typedef VALUE (*rb_debug_inspector_func_t)(const rb_debug_inspector_t *, void *);
VALUE rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data);
-VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, int index);
-VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, int index);
-VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, int index);
+VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, long index);
+VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, long index);
+VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, long index);
VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc);
/* Old style set_trace_func APIs */
diff --git a/vm_backtrace.c b/vm_backtrace.c
index dcca940c11..f22b95c704 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -1009,7 +1009,7 @@ struct rb_debug_inspector_struct {
rb_control_frame_t *cfp;
VALUE backtrace;
VALUE contexts; /* [[klass, binding, iseq, cfp], ...] */
- int backtrace_size;
+ long backtrace_size;
};
struct collect_caller_bindings_data {
@@ -1072,7 +1072,7 @@ rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data)
dbg_context.th = th;
dbg_context.cfp = dbg_context.th->cfp;
dbg_context.backtrace = vm_backtrace_location_ary(th, 0, 0);
- dbg_context.backtrace_size = RARRAY_LENINT(dbg_context.backtrace);
+ dbg_context.backtrace_size = RARRAY_LEN(dbg_context.backtrace);
dbg_context.contexts = collect_caller_bindings(th);
TH_PUSH_TAG(th);
@@ -1091,7 +1091,7 @@ rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data)
}
static VALUE
-frame_get(const rb_debug_inspector_t *dc, int index)
+frame_get(const rb_debug_inspector_t *dc, long index)
{
if (index < 0 || index >= dc->backtrace_size) {
rb_raise(rb_eArgError, "no such frame");
@@ -1100,21 +1100,21 @@ frame_get(const rb_debug_inspector_t *dc, int index)
}
VALUE
-rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, int index)
+rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, long index)
{
VALUE frame = frame_get(dc, index);
return rb_ary_entry(frame, 0);
}
VALUE
-rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, int index)
+rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, long index)
{
VALUE frame = frame_get(dc, index);
return rb_ary_entry(frame, 1);
}
VALUE
-rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, int index)
+rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, long index)
{
VALUE frame = frame_get(dc, index);
return rb_ary_entry(frame, 2);