< prev index next >
src/hotspot/share/ci/bcEscapeAnalyzer.cpp
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -857,11 +857,11 @@
ciField* field = s.get_field(ignored_will_link);
BasicType field_type = field->type()->basic_type();
if (s.cur_bc() != Bytecodes::_getstatic) {
set_method_escape(state.apop());
}
- if (field_type == T_OBJECT || field_type == T_ARRAY) {
+ if (is_reference_type(field_type)) {
state.apush(unknown_obj);
} else if (type2size[field_type] == 1) {
state.spush();
} else {
state.lpush();
@@ -871,11 +871,11 @@
case Bytecodes::_putstatic:
case Bytecodes::_putfield:
{ bool will_link;
ciField* field = s.get_field(will_link);
BasicType field_type = field->type()->basic_type();
- if (field_type == T_OBJECT || field_type == T_ARRAY) {
+ if (is_reference_type(field_type)) {
set_global_escape(state.apop());
} else if (type2size[field_type] == 1) {
state.spop();
} else {
state.lpop();
< prev index next >