< prev index next > src/hotspot/share/ci/ciArray.hpp
Print this page
/*
! * Copyright (c) 1999, 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.
/*
! * Copyright (c) 1999, 2020, 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.
#include "ci/ciArrayKlass.hpp"
#include "ci/ciConstant.hpp"
#include "ci/ciObject.hpp"
#include "oops/arrayOop.hpp"
+ #include "oops/flatArrayOop.hpp"
#include "oops/objArrayOop.hpp"
#include "oops/typeArrayOop.hpp"
// ciArray
//
int _length;
protected:
ciArray( objArrayHandle h_a) : ciObject(h_a), _length(h_a()->length()) {}
ciArray(typeArrayHandle h_a) : ciObject(h_a), _length(h_a()->length()) {}
+ ciArray(flatArrayHandle h_a) : ciObject(h_a), _length(h_a()->length()) {}
arrayOop get_arrayOop() const { return (arrayOop)get_oop(); }
const char* type_string() { return "ciArray"; }
// Returns T_ILLEGAL if there is no element at the given offset.
ciConstant element_value_by_offset(intptr_t element_offset);
// What kind of ciObject is this?
bool is_array() { return true; }
+
+ virtual bool is_flat() { return false; }
+ virtual bool is_null_free() { return false; }
};
#endif // SHARE_CI_CIARRAY_HPP
< prev index next >