project: Injector add CheckCast support for copy classes

This commit is contained in:
Owain van Brakel
2021-12-15 17:15:19 +01:00
parent 8b80c0b71f
commit 0b91062e9d
3 changed files with 15 additions and 2 deletions

View File

@@ -47,6 +47,13 @@ public class CheckCast extends Instruction implements TypeInstruction
super(instructions, InstructionType.CHECKCAST);
}
public CheckCast(Instructions instructions, Type type)
{
super(instructions, InstructionType.CHECKCAST);
this.type = type;
}
public CheckCast(Instructions instructions, InstructionType type)
{
super(instructions, type);

View File

@@ -19,6 +19,7 @@ import net.runelite.asm.Type;
import net.runelite.asm.attributes.Code;
import net.runelite.asm.attributes.code.Instruction;
import net.runelite.asm.attributes.code.Instructions;
import net.runelite.asm.attributes.code.instructions.CheckCast;
import net.runelite.asm.attributes.code.instructions.GetField;
import net.runelite.asm.attributes.code.instructions.GetStatic;
import net.runelite.asm.attributes.code.instructions.InvokeSpecial;
@@ -228,6 +229,11 @@ public class CopyRuneLiteClasses extends AbstractInjector
iterator.set(new New(ins, inject.toVanilla(deobClass)));
}
}
else if (i instanceof CheckCast)
{
CheckCast clazz = ((CheckCast) i);
iterator.set(new CheckCast(ins, getObfuscatedSignature(clazz.getType_())));
}
}
}
}

View File

@@ -19,7 +19,7 @@ public class RuneLiteIterableLinkDeque implements Iterator<Link>
}
@Override
public Link next()
public FriendLoginUpdate next()
{
if (this.link == this.linkDeque.sentinel)
{
@@ -27,7 +27,7 @@ public class RuneLiteIterableLinkDeque implements Iterator<Link>
}
else
{
Link friendLoginUpdate = this.link;
FriendLoginUpdate friendLoginUpdate = (FriendLoginUpdate) this.link;
this.link = this.link.previous;
return friendLoginUpdate;