aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed El Khazari <[email protected]>2025-05-13 16:25:23 +0300
committerAhmed El Khazari <[email protected]>2025-06-06 11:42:53 +0000
commit9bac1d26f5daccfc975e0e449bc7853012faa092 (patch)
treea6dda3199225f4b93be3c3119a14c2be656b9e22
parentcf7cac2edaa21d9a4f6269d50fd96461574d57bc (diff)
Fix: Incorrect constructor name resolution in signature and templatesHEADdev
Replaced hardcoded "<init>" check with `isConstructor()` for clarity and correctness. Updated template references to use `constructor.resolvedName` instead of `constructor.name` to properly reflect constructor naming logic. Fixes: QTTA-374 Task-number: QTTA-337 Change-Id: If748a9581a350e9b7cd60ea1c86715d347e6cdc4 Reviewed-by: Assam Boudjelthia <[email protected]>
-rw-r--r--compiler/src/main/java/io/github/landerlyoung/jenny/utils/Signature.kt2
-rw-r--r--compiler/src/main/resources/jte/constructors_definitions.kte2
-rw-r--r--compiler/src/main/resources/jte/qjni/qjni_constructors_definitions.kte2
3 files changed, 3 insertions, 3 deletions
diff --git a/compiler/src/main/java/io/github/landerlyoung/jenny/utils/Signature.kt b/compiler/src/main/java/io/github/landerlyoung/jenny/utils/Signature.kt
index ebd17db..3455781 100644
--- a/compiler/src/main/java/io/github/landerlyoung/jenny/utils/Signature.kt
+++ b/compiler/src/main/java/io/github/landerlyoung/jenny/utils/Signature.kt
@@ -48,7 +48,7 @@ class Signature(private val jennyElement: JennyElement) {
if (jennyElement is JennyExecutableElement) {
append('(')
- if (jennyElement.name.contentEquals("<init>")) {
+ if (jennyElement.isConstructor()) {
val clazz = jennyElement.declaringClass
clazz?.declaringClass?.let {
if ((it as JennyClazzElement).isNestedClass) {
diff --git a/compiler/src/main/resources/jte/constructors_definitions.kte b/compiler/src/main/resources/jte/constructors_definitions.kte
index d58349f..e6ecd85 100644
--- a/compiler/src/main/resources/jte/constructors_definitions.kte
+++ b/compiler/src/main/resources/jte/constructors_definitions.kte
@@ -17,7 +17,7 @@
!{val jniParameters = parametersProvider.getJennyElementJniParams(element = constructor,useJniHelper=useJniHelper)}
!{val javaParameters = parametersProvider.getJavaMethodParameters(constructor)}
// construct: ${constructor.modifiers.print()} ${simpleClassName}(${javaParameters})
- static ${returnType} ${constructor.name}(${jniParameters}) {
+ static ${returnType} ${constructor.resolvedName}(${jniParameters}) {
@template.method_prologue(useJniHelper = useJniHelper,isStatic = true)
return env->NewObject(${JennyNameProvider.getClassState()}, ${JennyNameProvider.getClassState(JennyNameProvider.getConstructorName(count))}${parametersProvider.getJniMethodParamVal(constructor, useJniHelper)});
}
diff --git a/compiler/src/main/resources/jte/qjni/qjni_constructors_definitions.kte b/compiler/src/main/resources/jte/qjni/qjni_constructors_definitions.kte
index 5f8cde1..b862023 100644
--- a/compiler/src/main/resources/jte/qjni/qjni_constructors_definitions.kte
+++ b/compiler/src/main/resources/jte/qjni/qjni_constructors_definitions.kte
@@ -17,7 +17,7 @@
!{val jniParameters = parametersProvider.getJennyElementJniParams(element = constructor,useJniHelper=useJniHelper)}
!{val javaParameters = parametersProvider.getJavaMethodParameters(constructor)}
// construct: ${constructor.modifiers.print()} ${simpleClassName}(${javaParameters})
- static ${returnType} ${constructor.name}(${jniParameters}) {
+ static ${returnType} ${constructor.resolvedName}(${jniParameters}) {
${returnType} ret;
ret.m_jniObject = QJniObject(FULL_CLASS_NAME, "${Signature.getBinaryJennyElementSignature(constructor)}"${parametersProvider.getJniMethodParamVal(constructor, useJniHelper)});
return ret;