Hi! This isn't really related to Groovy, but I'm doing weird things with
the JVM for a compiler plugin and I've hit a knowledge barrier I can't
pass.  Since you guys are the experts on "doing weird stuff with the JVM",
I was hoping you might be willing to help?


My goal is to copy existing methods, transform them, and link to those
transformed versions with InvokeDynamic.  Basically the template system
from C++, but done at runtime.
I've got all of the groundwork laid to do this, but I'm having trouble with
access violations in my clones.

Since I'm *cloning* methods, they'll be generated into a class other than
the one being cloned.  But then since I'm cloning *methods*, they need to
be able to access PRIVATE MEMBERS of the original instance.

I tried generating public bridge methods, but private types still break
that.  If possible, I'd like to just make my clone a "friend" of the
original class like in C++, but I don't know how.

I fully control the classes that clones can be made from, so I can mark
anything else as an "inner class" or "nestmate" as needed.  I just can't
figure out what each of those ALLOW on the JVM from the specification docs
alone.  And you know how helpful google is nowadays; I couldn't find
anything no matter how I phrased it.

Does anyone know how to do this?

Thank you so much for your help!

Reply via email to