From 43f0b1fcee2c1893519aeb1f0e9725664ee8d2cd Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Sun, 14 Jul 2024 12:42:41 +0200 Subject: [PATCH] QJniObject: specialize the QtJniTypes::Traits to treat it like jobject MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It doesn't make a lot of sense to pass QJniObject instances into APIs, but to be able to consistently treat QJniObject as an object type we have to register it with the java/lang/Object signature. Change-Id: Ic40e2676186bf327fa92764da51404985f74b565 Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit 82254fa836a21b5ec450a4ec7635e72403dded18) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qjniobject.h | 15 +++++++++++++++ .../corelib/kernel/qjnitypes/tst_qjnitypes.cpp | 9 --------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/corelib/kernel/qjniobject.h b/src/corelib/kernel/qjniobject.h index 9231e2d431b..e3168488fc7 100644 --- a/src/corelib/kernel/qjniobject.h +++ b/src/corelib/kernel/qjniobject.h @@ -825,6 +825,21 @@ template struct Traits> { static constexpr auto signature() { return Traits::signature(); } static constexpr auto className() { return Traits::className(); } }; + +template<> +struct Traits +{ + static constexpr auto className() + { + return CTString("java/lang/Object"); + } + + static constexpr auto signature() + { + return CTString("Ljava/lang/Object;"); + } +}; + } // This cannot be included earlier as QJniArray is a QJniObject subclass, but it diff --git a/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp b/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp index db0700ef2fb..7a4e89c6e42 100644 --- a/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp +++ b/tests/auto/corelib/kernel/qjnitypes/tst_qjnitypes.cpp @@ -35,15 +35,6 @@ struct QtJniTypes::Traits } }; -template<> -struct QtJniTypes::Traits -{ - static constexpr auto signature() - { - return QtJniTypes::CTString("Ljava/lang/Object;"); - } -}; - struct QtCustomJniObject : QJniObject {}; template<>