You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Class#getDeclaredField is supposed to be remappable. It turns out that that doesn't work using SpecialSource or SpecialSourceMP because the remapping needs to be done by a preprocessor so that the owning class name is still the old class name.
SS via command line and SSMP both only support post-processors (and require an access transformer file to enable that, though that's fine because supplying an empty file works). I started working on a change to add a parameter for preprocessing only to find out that SS is also incapable of correctly matching fields from Mojang's Proguard mappings.
RemapperProcessor#remapGetDeclaredFieldcalls JarMapping#tryClimb with a null descriptor. JarMapping#tryClimb assembles that info into a key used in Map#get. For the other mapping types, this is fine, but for Proguard mappings the key includes the descriptor. We don't know what the actual type is from the bytecode because it's being accessed via reflection, so we can never create a valid key.
The text was updated successfully, but these errors were encountered:
Class#getDeclaredField
is supposed to be remappable. It turns out that that doesn't work using SpecialSource or SpecialSourceMP because the remapping needs to be done by a preprocessor so that the owning class name is still the old class name.SS via command line and SSMP both only support post-processors (and require an access transformer file to enable that, though that's fine because supplying an empty file works). I started working on a change to add a parameter for preprocessing only to find out that SS is also incapable of correctly matching fields from Mojang's Proguard mappings.
RemapperProcessor#remapGetDeclaredField
callsJarMapping#tryClimb
with a null descriptor.JarMapping#tryClimb
assembles that info into a key used inMap#get
. For the other mapping types, this is fine, but for Proguard mappings the key includes the descriptor. We don't know what the actual type is from the bytecode because it's being accessed via reflection, so we can never create a valid key.The text was updated successfully, but these errors were encountered: