equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
34 static BciMap *_bci_map; |
34 static BciMap *_bci_map; |
35 static bool _switchable_test; |
35 static bool _switchable_test; |
36 static GrowableArray<int> *_fwd_jmps; |
36 static GrowableArray<int> *_fwd_jmps; |
37 |
37 |
38 static bool args_same(Bytecodes::Code c_old, Bytecodes::Code c_new); |
38 static bool args_same(Bytecodes::Code c_old, Bytecodes::Code c_new); |
|
39 static bool pool_constants_same(int cpi_old, int cpi_new); |
39 static int check_stack_and_locals_size(methodOop old_method, methodOop new_method); |
40 static int check_stack_and_locals_size(methodOop old_method, methodOop new_method); |
40 |
41 |
41 public: |
42 public: |
42 // Check if the new method is equivalent to the old one modulo constant pool (EMCP). |
43 // Check if the new method is equivalent to the old one modulo constant pool (EMCP). |
43 // Intuitive definition: two versions of the same method are EMCP, if they don't differ |
44 // Intuitive definition: two versions of the same method are EMCP, if they don't differ |