Hi, I am trying to replace methods during runtime. Lots of existing ways do this by simply inserting a jump at assembler level from the original to the new method. I want to do this too but with the new method being a DynamicMethod (or a delegate to it).
I did solve the IL part of it but testing it with a game (RimWorld) that uses Unity I find it crashes when I try my code with more than one method. I am no expert in when mono jitts its methods and vaguely know about trampolines and it looks like the memory area that you get with GetFunctionPtr() does change compared to when I write a jump to it into the original and that changed assembler gives me all sort of crashes. Interestingly, the other method using exactly the same way to patch it works. So any pointers, ideas or suggestions welcome. I am in general an experienced developer but just not familiar with the specific area. I can read c# and c and tried to understand the mono repository code and will continue to do so. I though it would be nice to ask in parallel here. Thanks, Andreas PS: my (not complete project) is here: https://github.com/pardeike/Harmony -- View this message in context: http://mono.1490590.n4.nabble.com/Unity-patching-methods-tp4669765.html Sent from the Mono - Dev mailing list archive at Nabble.com. _______________________________________________ Mono-devel-list mailing list [email protected] http://lists.dot.net/mailman/listinfo/mono-devel-list
