From 0022b05a9a222912ed91f658c058dff6955d2de4 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Sat, 16 Sep 2023 11:28:49 +0200 Subject: JNI: rename our compile-time String type to CTString MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The type lives in the QtJniTypes namespace, which is where types end up that are declared through the Q_DECLARE_JNI_CLASS/TYPE macros. Having a String type in that namespace prevents us from declaring the Java String class as a QtJniTypes type, which is silly. Perhaps this type becomes obsolete at some point with std::string being a constexpr type in C++23, but until then we need it. It has no ABI, so renaming it us safe. Until submodules are ported, leave a compatibility alias String type, which also prevents us from declaring a String JNI class in tests until the alias is removed in a later commit. Change-Id: I489a40a9b9e94e6495cf54548238438e9220d5c1 Reviewed-by: Zoltan Gera Reviewed-by: Tinja Paavoseppä Reviewed-by: Petri Virkkunen --- .../corelib/kernel/qjnitypes/tst_qjnitypes.cpp | 38 ++++++++++------------ 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp') diff --git a/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp b/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp index 3ad4827f93..d7b7059bd3 100644 --- a/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp +++ b/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp @@ -21,20 +21,20 @@ struct QtJavaWrapper {}; template<> constexpr auto QtJniTypes::typeSignature() { - return QtJniTypes::String("Lorg/qtproject/qt/android/QtJavaWrapper;"); + return QtJniTypes::CTString("Lorg/qtproject/qt/android/QtJavaWrapper;"); } template<> constexpr auto QtJniTypes::typeSignature() { - return QtJniTypes::String("Ljava/lang/Object;"); + return QtJniTypes::CTString("Ljava/lang/Object;"); } struct QtCustomJniObject : QJniObject {}; template<> constexpr auto QtJniTypes::typeSignature() { - return QtJniTypes::String("Lorg/qtproject/qt/android/QtCustomJniObject;"); + return QtJniTypes::CTString("Lorg/qtproject/qt/android/QtCustomJniObject;"); } static_assert(QtJniTypes::typeSignature() == "Lorg/qtproject/qt/android/QtJavaWrapper;"); @@ -46,8 +46,6 @@ static_assert(QtJniTypes::typeSignature() == "Lorg/qtproje Q_DECLARE_JNI_TYPE(ArrayType, "[Lorg/qtproject/qt/ArrayType;") static_assert(QtJniTypes::typeSignature() == "[Lorg/qtproject/qt/ArrayType;"); -static_assert(QtJniTypes::className() == "java/lang/String"); - Q_DECLARE_JNI_CLASS(QtTextToSpeech, "org/qtproject/qt/android/speech/QtTextToSpeech") static_assert(QtJniTypes::className() == "org/qtproject/qt/android/speech/QtTextToSpeech"); @@ -91,21 +89,21 @@ static_assert(QtJniTypes::isArrayType()); static_assert(QtJniTypes::isArrayType()); static_assert(QtJniTypes::isArrayType()); -static_assert(QtJniTypes::String("ABCDE").startsWith("ABC")); -static_assert(QtJniTypes::String("ABCDE").startsWith("A")); -static_assert(QtJniTypes::String("ABCDE").startsWith("ABCDE")); -static_assert(!QtJniTypes::String("ABCDE").startsWith("ABCDEF")); -static_assert(!QtJniTypes::String("ABCDE").startsWith("9AB")); -static_assert(QtJniTypes::String("ABCDE").startsWith('A')); -static_assert(!QtJniTypes::String("ABCDE").startsWith('B')); - -static_assert(QtJniTypes::String("ABCDE").endsWith("CDE")); -static_assert(QtJniTypes::String("ABCDE").endsWith("E")); -static_assert(QtJniTypes::String("ABCDE").endsWith("ABCDE")); -static_assert(!QtJniTypes::String("ABCDE").endsWith("DEF")); -static_assert(!QtJniTypes::String("ABCDE").endsWith("ABCDEF")); -static_assert(QtJniTypes::String("ABCDE").endsWith('E')); -static_assert(!QtJniTypes::String("ABCDE").endsWith('F')); +static_assert(QtJniTypes::CTString("ABCDE").startsWith("ABC")); +static_assert(QtJniTypes::CTString("ABCDE").startsWith("A")); +static_assert(QtJniTypes::CTString("ABCDE").startsWith("ABCDE")); +static_assert(!QtJniTypes::CTString("ABCDE").startsWith("ABCDEF")); +static_assert(!QtJniTypes::CTString("ABCDE").startsWith("9AB")); +static_assert(QtJniTypes::CTString("ABCDE").startsWith('A')); +static_assert(!QtJniTypes::CTString("ABCDE").startsWith('B')); + +static_assert(QtJniTypes::CTString("ABCDE").endsWith("CDE")); +static_assert(QtJniTypes::CTString("ABCDE").endsWith("E")); +static_assert(QtJniTypes::CTString("ABCDE").endsWith("ABCDE")); +static_assert(!QtJniTypes::CTString("ABCDE").endsWith("DEF")); +static_assert(!QtJniTypes::CTString("ABCDE").endsWith("ABCDEF")); +static_assert(QtJniTypes::CTString("ABCDE").endsWith('E')); +static_assert(!QtJniTypes::CTString("ABCDE").endsWith('F')); void tst_QJniTypes::initTestCase() { -- cgit v1.2.3