зеркало из https://github.com/github/ruby.git
* 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:
Родитель
e49a7bed21
Коммит
e54e53f355
|
@ -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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче