Thanks, after setting ClassSize = 0 I get:
[MD]: Error: Value class has neither fields nor size parameter.
[token:0x02000002]
[MD]: Error: ClassLayout has invalid PackingSize; valid set of values is
{1,2,4,...,128} (parent: 0x02000002; PackingSize: 65535). [token:0x00000001]
Setting PackagingSize = 0 removes the second error, but PEVerify still
complains about with:
[MD]: Error: Value class has neither fields nor size parameter.
[token:0x02000002]
I'm guessing that size=0 is not allowed, even for a struct with no data,
or being handled incorrectly by the Cecil emitter.
My fix is to locally set:
type.ClassSize = type.PackingSize =
(short)System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr));
I'm not sure how much overhead this will cause, but presumably this will
take up 4/8 bytes of stack space for each call.
Regards, Kenneth
--
--
mono-cecil