-
Notifications
You must be signed in to change notification settings - Fork 57
Open
Labels
Description
object FrameworkMarshallers {
inline fun <reified T : Any> create(crossinline reader: (AbstractBuffer) -> T, crossinline writer: (AbstractBuffer, T) -> Unit, predefinedId: Int? = null): UniversalMarshaller<T> {
return UniversalMarshaller(T::class, { _, stream -> reader(stream) }, { _, stream, v -> writer(stream, v) }, predefinedId)
}
Check this:
{ _, stream -> reader(stream) }
This means that for every callsite of FrameworkMarshallers.create there will be separate class created. Our JVM classloading logs for IntelliJ IDA shows clearly:
[1.35760] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$39
[1.35764] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$40 (2724 bytes)
[1.35772] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$40
[1.35778] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$41 (2583 bytes)
[1.35786] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$41
[1.35790] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$42 (2726 bytes)
[1.35797] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$42
[1.35803] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$43 (2585 bytes)
[1.35810] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$43
[1.35814] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$44 (2728 bytes)
[1.35820] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$44
[1.35826] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$45 (2581 bytes)
[1.35832] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$45
[1.35836] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$46 (2724 bytes)
[1.35844] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$46
[1.35849] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$47 (2587 bytes)
[1.35856] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$47
[1.35859] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$48 (2730 bytes)
[1.35866] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$48
[1.35900] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$49 (2667 bytes)
[1.35907] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$49
[1.35911] Loading class: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$50 (2794 bytes)
[1.35917] Class prepared: com/jetbrains/rd/framework/FrameworkMarshallers$special$$inlined$create$50