зеркало из https://github.com/github/ruby.git
rb_iseq_t: reduce to (280 bytes from 288 bytes) on 64-bit
iseq_size and line_info_size may be 32-bit. 4GB instruction sequences should be big enough for anyone. Other existing line info counters are 32-bit, and nobody should need all that. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
98c9581b03
Коммит
a9c7629ece
|
@ -1,3 +1,8 @@
|
|||
Sat Jul 26 16:28:06 2014 Eric Wong <e@80x24.org>
|
||||
|
||||
* vm_core.h (struct rb_iseq_struct): reduce to 280 bytes
|
||||
(from 288 bytes) on 64-bit
|
||||
|
||||
Sat Jul 26 06:44:43 2014 Eric Wong <e@80x24.org>
|
||||
|
||||
* parse.y (struct parse_params): shrink to 320 to 304 bytes on 64-bit
|
||||
|
|
|
@ -567,7 +567,7 @@ rb_iseq_translate_threaded_code(rb_iseq_t *iseq)
|
|||
{
|
||||
#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE
|
||||
const void * const *table = rb_vm_get_insns_address_table();
|
||||
unsigned long i;
|
||||
unsigned int i;
|
||||
|
||||
iseq->iseq_encoded = ALLOC_N(VALUE, iseq->iseq_size);
|
||||
MEMCPY(iseq->iseq_encoded, iseq->iseq, VALUE, iseq->iseq_size);
|
||||
|
|
5
iseq.c
5
iseq.c
|
@ -1379,7 +1379,7 @@ rb_iseq_disasm(VALUE self)
|
|||
VALUE *iseq;
|
||||
VALUE str = rb_str_new(0, 0);
|
||||
VALUE child = rb_ary_new();
|
||||
unsigned long size;
|
||||
unsigned int size;
|
||||
int i;
|
||||
long l;
|
||||
ID *tbl;
|
||||
|
@ -2144,7 +2144,8 @@ int
|
|||
rb_iseq_line_trace_each(VALUE iseqval, int (*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data)
|
||||
{
|
||||
int trace_num = 0;
|
||||
size_t pos, insn;
|
||||
unsigned int pos;
|
||||
size_t insn;
|
||||
rb_iseq_t *iseq;
|
||||
int cont = 1;
|
||||
GetISeqPtr(iseqval, iseq);
|
||||
|
|
|
@ -214,13 +214,14 @@ struct rb_iseq_struct {
|
|||
|
||||
VALUE *iseq; /* iseq (insn number and operands) */
|
||||
VALUE *iseq_encoded; /* encoded iseq */
|
||||
unsigned long iseq_size;
|
||||
unsigned int iseq_size;
|
||||
unsigned int line_info_size;
|
||||
|
||||
const VALUE mark_ary; /* Array: includes operands which should be GC marked */
|
||||
const VALUE coverage; /* coverage array */
|
||||
|
||||
/* insn info, must be freed */
|
||||
struct iseq_line_info_entry *line_info_table;
|
||||
size_t line_info_size;
|
||||
|
||||
ID *local_table; /* must free */
|
||||
int local_table_size;
|
||||
|
|
Загрузка…
Ссылка в новой задаче