fix: OOM errors in mapper

This commit is contained in:
ΞTΞRNAL
2025-10-07 21:53:06 +05:30
parent b430e8c6c6
commit 3daf5ea89b

View File

@@ -11,19 +11,21 @@ class FriendsFeedEventDispatcherMapper : AbstractClassMapper("FriendsFeedEventDi
init {
mapper {
for (clazz in classes) {
if (clazz.methods.count { it.name == "onClickFeed" || it.name == "onItemLongPress" } != 2) continue
classes.asSequence().firstOrNull { clazz ->
if (clazz.methods.count { it.name == "onClickFeed" || it.name == "onItemLongPress" } != 2) {
return@firstOrNull false
}
val onItemLongPress = clazz.methods.first { it.name == "onItemLongPress" }
val viewHolderContainerClass = getClass(onItemLongPress.parameterTypes[0]) ?: continue
val viewHolderContainerClass = getClass(onItemLongPress.parameterTypes[0]) ?: return@firstOrNull false
val viewModelDexField = viewHolderContainerClass.fields.firstOrNull { field ->
val typeClass = getClass(field.type) ?: return@firstOrNull false
typeClass.methods.firstOrNull {it.name == "toString"}?.implementation?.findConstString("FriendFeedItemViewModel", contains = true) == true
}?.name ?: continue
}?.name ?: return@firstOrNull false
classReference.set(clazz.getClassName())
viewModelField.set(viewModelDexField)
return@mapper
true
}
}
}