src/share/vm/oops/method.cpp

changeset 4245
4735d2c84362
parent 4164
d804e148cff8
child 4246
ec204374e626
     1.1 --- a/src/share/vm/oops/method.cpp	Thu Nov 01 13:05:47 2012 +0100
     1.2 +++ b/src/share/vm/oops/method.cpp	Thu Oct 11 12:25:42 2012 -0400
     1.3 @@ -35,6 +35,7 @@
     1.4  #include "memory/generation.hpp"
     1.5  #include "memory/metadataFactory.hpp"
     1.6  #include "memory/oopFactory.hpp"
     1.7 +#include "oops/constMethod.hpp"
     1.8  #include "oops/methodData.hpp"
     1.9  #include "oops/method.hpp"
    1.10  #include "oops/oop.inline.hpp"
    1.11 @@ -57,22 +58,24 @@
    1.12  // Implementation of Method
    1.13  
    1.14  Method* Method::allocate(ClassLoaderData* loader_data,
    1.15 -                            int byte_code_size,
    1.16 -                            AccessFlags access_flags,
    1.17 -                            int compressed_line_number_size,
    1.18 -                            int localvariable_table_length,
    1.19 -                            int exception_table_length,
    1.20 -                            int checked_exceptions_length,
    1.21 -                            TRAPS) {
    1.22 +                         int byte_code_size,
    1.23 +                         AccessFlags access_flags,
    1.24 +                         int compressed_line_number_size,
    1.25 +                         int localvariable_table_length,
    1.26 +                         int exception_table_length,
    1.27 +                         int checked_exceptions_length,
    1.28 +                         ConstMethod::MethodType method_type,
    1.29 +                         TRAPS) {
    1.30    assert(!access_flags.is_native() || byte_code_size == 0,
    1.31           "native methods should not contain byte codes");
    1.32    ConstMethod* cm = ConstMethod::allocate(loader_data,
    1.33 -                                      byte_code_size,
    1.34 -                                      compressed_line_number_size,
    1.35 -                                      localvariable_table_length,
    1.36 -                                      exception_table_length,
    1.37 -                                      checked_exceptions_length,
    1.38 -                                      CHECK_NULL);
    1.39 +                                          byte_code_size,
    1.40 +                                          compressed_line_number_size,
    1.41 +                                          localvariable_table_length,
    1.42 +                                          exception_table_length,
    1.43 +                                          checked_exceptions_length,
    1.44 +                                          method_type,
    1.45 +                                          CHECK_NULL);
    1.46  
    1.47    int size = Method::size(access_flags.is_native());
    1.48  
    1.49 @@ -1031,7 +1034,7 @@
    1.50    methodHandle m;
    1.51    {
    1.52      Method* m_oop = Method::allocate(loader_data, 0, accessFlags_from(flags_bits),
    1.53 -                                              0, 0, 0, 0, CHECK_(empty));
    1.54 +            0, 0, 0, 0, ConstMethod::NORMAL, CHECK_(empty));
    1.55      m = methodHandle(THREAD, m_oop);
    1.56    }
    1.57    m->set_constants(cp());
    1.58 @@ -1083,15 +1086,16 @@
    1.59    int localvariable_len = m->localvariable_table_length();
    1.60    int exception_table_len = m->exception_table_length();
    1.61  
    1.62 -  ClassLoaderData* loader_data = m()->method_holder()->class_loader_data();
    1.63 +  ClassLoaderData* loader_data = m->method_holder()->class_loader_data();
    1.64    Method* newm_oop = Method::allocate(loader_data,
    1.65 -                                               new_code_length,
    1.66 -                                              flags,
    1.67 -                                              new_compressed_linenumber_size,
    1.68 -                                              localvariable_len,
    1.69 -                                              exception_table_len,
    1.70 -                                              checked_exceptions_len,
    1.71 -                                              CHECK_(methodHandle()));
    1.72 +                                      new_code_length,
    1.73 +                                      flags,
    1.74 +                                      new_compressed_linenumber_size,
    1.75 +                                      localvariable_len,
    1.76 +                                      exception_table_len,
    1.77 +                                      checked_exceptions_len,
    1.78 +                                      m->method_type(),
    1.79 +                                      CHECK_(methodHandle()));
    1.80    methodHandle newm (THREAD, newm_oop);
    1.81    int new_method_size = newm->method_size();
    1.82  

mercurial