зеркало из https://github.com/github/ruby.git
compile.c: check type before checking insn_id
* compile.c (iseq_peephole_optimize): check element type before checking insn_id which is valid only for INSN elements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
d8e1939232
Коммит
e4fc85dfcf
|
@ -1998,7 +1998,13 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal
|
|||
*/
|
||||
INSN *nobj = (INSN *)get_destination_insn(iobj);
|
||||
INSN *pobj = (INSN *)iobj->link.prev;
|
||||
int prev_dup = (pobj && pobj->insn_id == BIN(dup));
|
||||
int prev_dup = 0;
|
||||
if (pobj) {
|
||||
if (pobj->link.type != ISEQ_ELEMENT_INSN)
|
||||
pobj = 0;
|
||||
else if (pobj->insn_id == BIN(dup))
|
||||
prev_dup = 1;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
if (nobj->insn_id == BIN(jump)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче