Skip to content

8358205: Remove unused JFR array allocation code #25553

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 3 additions & 14 deletions src/hotspot/share/jfr/jni/jfrJavaCall.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,16 +179,15 @@ void JfrJavaArguments::Parameters::copy(JavaCallArguments& args, TRAPS) const {
}
}

JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(nullptr), _name(nullptr), _signature(nullptr), _array_length(-1) {
JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(nullptr), _name(nullptr), _signature(nullptr) {
assert(result != nullptr, "invariant");
}

JfrJavaArguments::JfrJavaArguments(JavaValue* result, const char* klass_name, const char* name, const char* signature, TRAPS) :
_result(result),
_klass(nullptr),
_name(nullptr),
_signature(nullptr),
_array_length(-1) {
_signature(nullptr) {
assert(result != nullptr, "invariant");
if (klass_name != nullptr) {
set_klass(klass_name, CHECK);
Expand All @@ -204,8 +203,7 @@ JfrJavaArguments::JfrJavaArguments(JavaValue* result, const char* klass_name, co
JfrJavaArguments::JfrJavaArguments(JavaValue* result, const Klass* klass, const Symbol* name, const Symbol* signature) : _result(result),
_klass(nullptr),
_name(nullptr),
_signature(nullptr),
_array_length(-1) {
_signature(nullptr) {
assert(result != nullptr, "invariant");
if (klass != nullptr) {
set_klass(klass);
Expand Down Expand Up @@ -268,15 +266,6 @@ void JfrJavaArguments::set_signature(const Symbol* signature) {
_signature = signature;
}

int JfrJavaArguments::array_length() const {
return _array_length;
}

void JfrJavaArguments::set_array_length(int length) {
assert(length >= 0, "invariant");
_array_length = length;
}

JavaValue* JfrJavaArguments::result() const {
assert(_result != nullptr, "invariant");
return const_cast<JavaValue*>(_result);
Expand Down
6 changes: 1 addition & 5 deletions src/hotspot/share/jfr/jni/jfrJavaCall.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2025, 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
Expand Down Expand Up @@ -55,9 +55,6 @@ class JfrJavaArguments : public StackObj {
void set_signature(const char* signature);
void set_signature(const Symbol* signature);

int array_length() const;
void set_array_length(int length);

JavaValue* result() const;

bool has_receiver() const;
Expand Down Expand Up @@ -117,7 +114,6 @@ class JfrJavaArguments : public StackObj {
const Klass* _klass;
const Symbol* _name;
const Symbol* _signature;
int _array_length;

int java_call_arg_slots() const;
void copy(JavaCallArguments& args, TRAPS);
Expand Down
30 changes: 1 addition & 29 deletions src/hotspot/share/jfr/jni/jfrJavaSupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,19 +178,6 @@ static void object_construction(JfrJavaArguments* args, JavaValue* result, Insta
result->set_oop(h_obj());
}

static void array_construction(JfrJavaArguments* args, JavaValue* result, InstanceKlass* klass, int array_length, TRAPS) {
assert(args != nullptr, "invariant");
assert(result != nullptr, "invariant");
assert(klass != nullptr, "invariant");
assert(klass->is_initialized(), "invariant");

Klass* const ak = klass->array_klass(THREAD);
ObjArrayKlass::cast(ak)->initialize(THREAD);
HandleMark hm(THREAD);
objArrayOop arr = ObjArrayKlass::cast(ak)->allocate(array_length, CHECK);
result->set_oop(arr);
}

static void create_object(JfrJavaArguments* args, JavaValue* result, TRAPS) {
assert(args != nullptr, "invariant");
assert(result != nullptr, "invariant");
Expand All @@ -200,13 +187,7 @@ static void create_object(JfrJavaArguments* args, JavaValue* result, TRAPS) {
InstanceKlass* const klass = static_cast<InstanceKlass*>(args->klass());
klass->initialize(CHECK);

const int array_length = args->array_length();

if (array_length >= 0) {
array_construction(args, result, klass, array_length, CHECK);
} else {
object_construction(args, result, klass, THREAD);
}
object_construction(args, result, klass, THREAD);
}

static void handle_result(JavaValue* result, bool global_ref, JavaThread* t) {
Expand Down Expand Up @@ -252,15 +233,6 @@ jstring JfrJavaSupport::new_string(const char* c_str, TRAPS) {
return (jstring)local_jni_handle(result, THREAD);
}

jobjectArray JfrJavaSupport::new_string_array(int length, TRAPS) {
DEBUG_ONLY(check_java_thread_in_vm(THREAD));
JavaValue result(T_OBJECT);
JfrJavaArguments args(&result, "java/lang/String", "<init>", "()V", CHECK_NULL);
args.set_array_length(length);
new_object_local_ref(&args, THREAD);
return (jobjectArray)args.result()->get_jobject();
}

jobject JfrJavaSupport::new_java_lang_Boolean(bool value, TRAPS) {
DEBUG_ONLY(check_java_thread_in_vm(THREAD));
JavaValue result(T_OBJECT);
Expand Down
1 change: 0 additions & 1 deletion src/hotspot/share/jfr/jni/jfrJavaSupport.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ class JfrJavaSupport : public AllStatic {
static void get_field_local_ref(JfrJavaArguments* args, TRAPS);

static jstring new_string(const char* c_str, TRAPS);
static jobjectArray new_string_array(int length, TRAPS);

static jobject new_java_lang_Boolean(bool value, TRAPS);
static jobject new_java_lang_Integer(jint value, TRAPS);
Expand Down
1 change: 0 additions & 1 deletion src/hotspot/share/memory/oopFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ typeArrayOop oopFactory::new_typeArray_nozero(BasicType type, int length, TRAPS)


objArrayOop oopFactory::new_objArray(Klass* klass, int length, TRAPS) {
assert(klass->is_klass(), "must be instance class");
if (klass->is_array_klass()) {
return ArrayKlass::cast(klass)->allocate_arrayArray(1, length, THREAD);
} else {
Expand Down