Skip to content

Commit

Permalink
fix(mapper): exclude CppProxy classes from callbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
rhunk authored Sep 12, 2023
1 parent f749516 commit 6d73086
Showing 1 changed file with 6 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,17 @@ class CallbackMapper : AbstractClassMapper() {
if (clazz.superclass == null) return@filter false

val superclassName = clazz.getSuperClassName()!!
if (!superclassName.endsWith("Callback") || superclassName.endsWith("\$Callback")) return@filter false
if ((!superclassName.endsWith("Callback") && !superclassName.endsWith("Delegate"))
|| superclassName.endsWith("\$Callback")) return@filter false

val superClass = context.getClass(clazz.superclass) ?: return@filter false
if (superClass.isFinal()) return@filter false
if (clazz.getClassName().endsWith("\$CppProxy")) return@filter false

superClass.virtualMethods.any { it.name == "onError" }
val superClass = context.getClass(clazz.superclass) ?: return@filter false
!superClass.isFinal()
}.map {
it.getSuperClassName()!!.substringAfterLast("/") to it.getClassName()
}

context.addMapping("callbacks", *callbackClasses.toTypedArray())
}
}
}

0 comments on commit 6d73086

Please sign in to comment.