summaryrefslogtreecommitdiff
path: root/external/ikvm/runtime/stubgen/ClassFileWriter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'external/ikvm/runtime/stubgen/ClassFileWriter.cs')
-rw-r--r--external/ikvm/runtime/stubgen/ClassFileWriter.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/external/ikvm/runtime/stubgen/ClassFileWriter.cs b/external/ikvm/runtime/stubgen/ClassFileWriter.cs
index 327591c91d..ded626741b 100644
--- a/external/ikvm/runtime/stubgen/ClassFileWriter.cs
+++ b/external/ikvm/runtime/stubgen/ClassFileWriter.cs
@@ -830,6 +830,31 @@ namespace IKVM.StubGen
}
}
+ sealed class MethodParametersAttribute : ClassFileAttribute
+ {
+ private readonly ClassFileWriter classFile;
+ private readonly ushort[] names;
+
+ internal MethodParametersAttribute(ClassFileWriter classFile, ushort[] names)
+ : base(classFile.AddUtf8("MethodParameters"))
+ {
+ this.classFile = classFile;
+ this.names = names;
+ }
+
+ public override void Write(BigEndianStream bes)
+ {
+ base.Write(bes);
+ bes.WriteUInt32((uint)(1 + names.Length * 4));
+ bes.WriteByte((byte)names.Length);
+ foreach (ushort idx in names)
+ {
+ bes.WriteUInt16(idx);
+ bes.WriteUInt16(0);
+ }
+ }
+ }
+
interface IAttributeOwner
{
void AddAttribute(ClassFileAttribute attrib);