* vm_core.h (struct rb_iseq_struct): stack_max is changed to int

because all calculations related to stack_max in compile.c
  (iseq_set_sequence) and vm_insnhelper.c (vm_push_frame) are
  conducted by using int. This partly reverts r23945.
* vm_insnhelper.c (vm_push_frame): ditto. This reverts r42401.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ngoto 2014-07-16 11:46:06 +00:00
Родитель e49a7bed21
Коммит e54e53f355
3 изменённых файлов: 11 добавлений и 3 удалений

Просмотреть файл

@ -1,3 +1,11 @@
Wed Jul 16 20:21:49 2014 Naohisa Goto <ngotogenome@gmail.com>
* vm_core.h (struct rb_iseq_struct): stack_max is changed to int
because all calculations related to stack_max in compile.c
(iseq_set_sequence) and vm_insnhelper.c (vm_push_frame) are
conducted by using int. This partly reverts r23945.
* vm_insnhelper.c (vm_push_frame): ditto. This reverts r42401.
Wed Jul 16 19:55:32 2014 Naohisa Goto <ngotogenome@gmail.com>
* vm_core.h (struct rb_iseq_struct): temporal workaround of [Bug 10037].

Просмотреть файл

@ -208,7 +208,7 @@ struct rb_iseq_struct {
#if defined(WORDS_BIGENDIAN) && (SIZEOF_VALUE > SIZEOF_INT)
char dummy[SIZEOF_VALUE - SIZEOF_INT]; /* [Bug #10037][ruby-core:63721] */
#endif
uint32_t stack_max; /* for stack overflow check */
int stack_max; /* for stack overflow check */
rb_iseq_location_t location;

Просмотреть файл

@ -49,13 +49,13 @@ vm_push_frame(rb_thread_t *th,
VALUE *sp,
int local_size,
const rb_method_entry_t *me,
size_t stack_max)
int stack_max)
{
rb_control_frame_t *const cfp = th->cfp - 1;
int i;
/* check stack overflow */
CHECK_VM_STACK_OVERFLOW0(cfp, sp, local_size + (int)stack_max);
CHECK_VM_STACK_OVERFLOW0(cfp, sp, local_size + stack_max);
th->cfp = cfp;