dnpatch icon indicating copy to clipboard operation
dnpatch copied to clipboard

[Wrong code in release] PatchHelper / GetInstructions

Open themaoci opened this issue 4 years ago • 1 comments

Hello i found a bug in PatchHelper.GetInstructions

its suposed to return Instruction[] and anyway no matter how hard i tried it was always returnign me an exception that i cannot cast IList<Instruction> to Instruction[]

so my quick workaround was to edit it from this code below

public Instruction[] GetInstructions(Target target)
{
	TypeDef type = this.FindType(target.Namespace + "." + target.Class, target.NestedClasses);
	MethodDef methodDef = this.FindMethod(type, target.Method, target.Parameters, target.ReturnType);
	return (Instruction[])methodDef.Body.Instructions;
}

into this one

public Instruction[] GetInstructions(Target target)
{
	TypeDef type = this.FindType(target.Namespace + "." + target.Class, target.NestedClasses);
	IEnumerator<Instruction> enumerator = this.FindMethod(type, target.Method, target.Parameters, target.ReturnType).Body.Instructions.GetEnumerator();
	List<Instruction> list = new List<Instruction>();
	while (enumerator.MoveNext())
	{
		Instruction item = enumerator.Current;
		list.Add(item);
	}
	return list.ToArray();
}

if someone of you have some time please apply it to new release THANKS :) it will deffenetly help others Hope you guys are doing well!!!

themaoci avatar Feb 21 '21 02:02 themaoci

PS. i was checking dnpatch.zip and dnlib.zip release files as i remember

themaoci avatar Feb 21 '21 02:02 themaoci