From c59c41aa6e28ab1dc59e6051f85e3e9ade251b07 Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Tue, 19 Mar 2024 08:46:51 +0000 Subject: [PATCH] 8326941: Remove StringUTF16::isBigEndian Reviewed-by: rriggs --- .../share/classes/java/lang/StringUTF16.java | 8 ++++---- src/java.base/share/native/libjava/String.c | 13 +------------ 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/java.base/share/classes/java/lang/StringUTF16.java b/src/java.base/share/classes/java/lang/StringUTF16.java index caf8be685ae..aaf1d76ae24 100644 --- a/src/java.base/share/classes/java/lang/StringUTF16.java +++ b/src/java.base/share/classes/java/lang/StringUTF16.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, 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 @@ -32,6 +32,8 @@ import java.util.function.Consumer; import java.util.function.IntConsumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; + +import jdk.internal.misc.Unsafe; import jdk.internal.util.ArraysSupport; import jdk.internal.util.DecimalDigits; import jdk.internal.vm.annotation.ForceInline; @@ -1658,12 +1660,10 @@ final class StringUTF16 { //////////////////////////////////////////////////////////////// - private static native boolean isBigEndian(); - private static final int HI_BYTE_SHIFT; private static final int LO_BYTE_SHIFT; static { - if (isBigEndian()) { + if (Unsafe.getUnsafe().isBigEndian()) { HI_BYTE_SHIFT = 8; LO_BYTE_SHIFT = 0; } else { diff --git a/src/java.base/share/native/libjava/String.c b/src/java.base/share/native/libjava/String.c index cc7f740618f..76365054328 100644 --- a/src/java.base/share/native/libjava/String.c +++ b/src/java.base/share/native/libjava/String.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, 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 @@ -31,14 +31,3 @@ Java_java_lang_String_intern(JNIEnv *env, jobject this) { return JVM_InternString(env, this); } - -JNIEXPORT jboolean JNICALL -Java_java_lang_StringUTF16_isBigEndian(JNIEnv *env, jclass cls) -{ - unsigned int endianTest = 0xff000000; - if (((char*)(&endianTest))[0] != 0) { - return JNI_TRUE; - } else { - return JNI_FALSE; - } -}