Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/ci/ciMethodHandle.cpp
          +++ new/src/share/vm/ci/ciMethodHandle.cpp
   1    1  /*
   2      - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
        2 + * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
   3    3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4    4   *
   5    5   * This code is free software; you can redistribute it and/or modify it
   6    6   * under the terms of the GNU General Public License version 2 only, as
   7    7   * published by the Free Software Foundation.
   8    8   *
   9    9   * This code is distributed in the hope that it will be useful, but WITHOUT
  10   10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11   11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12   12   * version 2 for more details (a copy is included in the LICENSE file that
↓ open down ↓ 18 lines elided ↑ open up ↑
  31   31  #include "prims/methodHandles.hpp"
  32   32  
  33   33  // ciMethodHandle
  34   34  
  35   35  // ------------------------------------------------------------------
  36   36  // ciMethodHandle::get_adapter
  37   37  //
  38   38  // Return an adapter for this MethodHandle.
  39   39  ciMethod* ciMethodHandle::get_adapter(bool is_invokedynamic) const {
  40   40    VM_ENTRY_MARK;
  41      -
  42   41    Handle h(get_oop());
  43   42    methodHandle callee(_callee->get_methodOop());
  44      -  MethodHandleCompiler mhc(h, callee, is_invokedynamic, THREAD);
  45      -  methodHandle m = mhc.compile(CHECK_NULL);
       43 +  // We catch all exceptions here that could happen in the method
       44 +  // handle compiler and stop the VM.
       45 +  MethodHandleCompiler mhc(h, callee, is_invokedynamic, CATCH);
       46 +  methodHandle m = mhc.compile(CATCH);
  46   47    return CURRENT_ENV->get_object(m())->as_method();
  47   48  }
  48   49  
  49   50  
  50   51  // ------------------------------------------------------------------
  51   52  // ciMethodHandle::print_impl
  52   53  //
  53   54  // Implementation of the print method.
  54   55  void ciMethodHandle::print_impl(outputStream* st) {
  55   56    st->print(" type=");
  56   57    get_oop()->print();
  57   58  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX