Print this page
rev 7151 : 8043224: -Xcheck:jni improvements to exception checking and excessive local refs
Summary: Warning when not checking exceptions from function that require so, also when local refs expand beyond capacity.
Reviewed-by: dsimms

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/runtime/thread.cpp
          +++ new/hotspot/src/share/vm/runtime/thread.cpp
   1    1  /*
   2      - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
        2 + * Copyright (c) 1997, 2015, 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 ↓ 1445 lines elided ↑ open up ↑
1458 1458    _jvmti_thread_state= NULL;
1459 1459    _should_post_on_exceptions_flag = JNI_FALSE;
1460 1460    _jvmti_get_loaded_classes_closure = NULL;
1461 1461    _interp_only_mode    = 0;
1462 1462    _special_runtime_exit_condition = _no_async_condition;
1463 1463    _pending_async_exception = NULL;
1464 1464    _thread_stat = NULL;
1465 1465    _thread_stat = new ThreadStatistics();
1466 1466    _blocked_on_compilation = false;
1467 1467    _jni_active_critical = 0;
     1468 +  _pending_jni_exception_check_fn = NULL;
1468 1469    _do_not_unlock_if_synchronized = false;
1469 1470    _cached_monitor_info = NULL;
1470 1471    _parker = Parker::Allocate(this) ;
1471 1472  
1472 1473  #ifndef PRODUCT
1473 1474    _jmp_ring_index = 0;
1474 1475    for (int ji = 0 ; ji < jump_ring_buffer_size ; ji++ ) {
1475 1476      record_jump(NULL, NULL, NULL, 0);
1476 1477    }
1477 1478  #endif /* PRODUCT */
↓ open down ↓ 3201 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX