//interpreteur put fast_invoke_virtual_final not only for //static methods but also for final methods of Object class! void check_uncommon_or_static_method(int index JVM_TRAPS) { ConstantPool cp = method()->constants(); if (!cp.tag_at(index).is_resolved_final_uncommon_interface_method()) { check_static(index JVM_CHECK); } }
void check_my_type(t_mar *mar) { int c; c = 0; if (mar->str[c] == 'i' || mar->str[c] == 'c' && mar->str[c + 1] == 'h' || mar->str[c] == 's' && mar->str[c + 1] == 'h') print_basic(mar, c); else if (mar->str[c] == 'l') check_long(mar, c); else if (mar->str[c] == 's' && mar->str[c + 1] == 't' && mar->str[c + 2] == 'a' && mar->str[c + 3] == 't' && mar->str[c + 4] == 'i' && mar->str[c + 5] == 'c' && mar->str[c + 6] == ' ') check_static(mar, c); else if (mar->str[c] == 'c' && mar->str[c + 1] == 'o' && mar->str[c + 2] == 'n' && mar->str[c + 3] == 's' && mar->str[c + 4] == 't' && mar->str[c + 5] == ' ') check_const(mar, c); else if (mar->str[c] == 'u' || mar->str[c] == 'v' || mar->str[c] == 'f' || mar->str[c] == 'd') check_my_type_two(mar, c); printf("Déclaration de la variable de type %s%s nommé %s.\n", mar->ptr, mar->type, mar->var); }
int main(int argc, char **argv) { /* change recurse to 5-10 to see stack faults without page outs */ int depth = 512; if(check_static()) { integrity_check_enabled = 1; } else { Print("Integrity check disabled, since statics are busted.\n"); integrity_check_enabled = 0; } Check_Integrity_Or_Die(); if(argc > 1) { depth = atoi(argv[1]); Print("Depth is %d\n", depth); } if(argc > 2) { Quiet = 1; } Recurse(depth); Print("Rec %d success\n", depth); return 0; }
virtual void invoke_static(int index JVM_TRAPS) { if (_code == Bytecodes::_invokestatic || _code == Bytecodes::_fast_invokestatic || _code == Bytecodes::_fast_init_invokestatic) { check_static(index JVM_CHECK); } BytecodeClosure::invoke_static(index JVM_CHECK); }
//interpreteur put fast_invoke_virtual_final not only for //static methods but also for final methods of Object class! void check_uncommon_or_static_method(int index) { AllocationDisabler no_allocation_should_happen; ConstantPool::Raw cp = method()->constants(); if (!cp().tag_at(index).is_resolved_final_uncommon_interface_method()) { check_static(index); } }
//invoke_special could invoke <init> methods which are resolved as ResolvedStaticMethod void check_virtual_or_static(int index) { AllocationDisabler no_allocation_should_happen; ConstantPool::Raw cp = method()->constants(); if (!cp().tag_at(index).is_resolved_static_method()) { check_virtual(index); } else { check_static(index); } }
int main(int ac, char **av) { t_win *win; char *origin_term; catch_signal(); if (ac > 1) { win = check_static(); if ((origin_term = getenv("TERM")) == NULL) exit(0); if (tgetent(NULL, origin_term) == ERR) exit(0); if (tcgetattr(0, &(win->ori_term)) == -1) exit(0); tputs(tgetstr("ti", NULL), 0, &ft_putterm); create_list(av, &(win->arg)); get_list(); } return (0); }