Author: jbevain
Date: 2005-07-14 08:25:12 -0400 (Thu, 14 Jul 2005)
New Revision: 47300
Modified:
trunk/cecil/lib/ChangeLog
trunk/cecil/lib/CodeGen/cecil-gen.rb
trunk/cecil/lib/CodeGen/templates/IndexedCollectionImplem.cs
trunk/cecil/lib/CodeGen/templates/LzIndexedCollectionImplem.cs
trunk/cecil/lib/CodeGen/templates/LzNamedCollectionImplem.cs
trunk/cecil/lib/CodeGen/templates/MetadataTableWriter.cs
trunk/cecil/lib/CodeGen/templates/PEOptionalHeader.cs
trunk/cecil/lib/Mono.Cecil.Metadata/CodedIndex.cs
trunk/cecil/lib/Mono.Cecil.Metadata/IMetadataVisitor.cs
trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowReader.cs
trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowWriter.cs
trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs
trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableWriter.cs
trunk/cecil/lib/Mono.Cecil.Metadata/Utilities.cs
Log:
2005-07-14 Jb Evain <[EMAIL PROTECTED]>
* CodeGen/cecil-gen.rb:
make codegen works on ruby 1.8.2
* CodeGen/templates/*.cs
Mono.Cecil.Metadata/*.cs:
style
Modified: trunk/cecil/lib/ChangeLog
===================================================================
--- trunk/cecil/lib/ChangeLog 2005-07-14 11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/ChangeLog 2005-07-14 12:25:12 UTC (rev 47300)
@@ -1,3 +1,11 @@
+2005-07-14 Jb Evain <[EMAIL PROTECTED]>
+
+ * CodeGen/cecil-gen.rb:
+ make codegen works on ruby 1.8.2
+ * CodeGen/templates/*.cs
+ Mono.Cecil.Metadata/*.cs:
+ style
+
2005-07-13 Jb Evain <[EMAIL PROTECTED]>
* Mono.Cecil.Implem/VariableDefinition.cs:
Modified: trunk/cecil/lib/CodeGen/cecil-gen.rb
===================================================================
--- trunk/cecil/lib/CodeGen/cecil-gen.rb 2005-07-14 11:57:19 UTC (rev
47299)
+++ trunk/cecil/lib/CodeGen/cecil-gen.rb 2005-07-14 12:25:12 UTC (rev
47300)
@@ -51,6 +51,10 @@
$tables.push(table)
}
+$tables.sort!() { |a, b|
+ a.name <=> b.name
+}
+
doc.root.each_element("/cecil/metadata/codedindexes//codedindex") { |node|
ci = Cecil::CodedIndex.new(node.attribute("name").value,
node.attribute("size").value,
@@ -69,6 +73,16 @@
node.attribute("requires").nil? ? nil :
node.attribute("requires").value))
}
+$ops.sort!() { |a, b|
+ if a.op1 == b.op1
+ eval(a.op2) <=> eval(b.op2)
+ elsif a.op1 == "0xff"
+ -1
+ else
+ 1
+ end
+}
+
doc.root.each_element("/cecil/collections//collection") { |node|
$colls.push(Cecil::Collection.new(node.attribute("type").value,
node.attribute("container").value,
(node.attribute("visit").nil? ? nil :
node.attribute("visit").value),
Modified: trunk/cecil/lib/CodeGen/templates/IndexedCollectionImplem.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/IndexedCollectionImplem.cs
2005-07-14 11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/CodeGen/templates/IndexedCollectionImplem.cs
2005-07-14 12:25:12 UTC (rev 47300)
@@ -52,7 +52,7 @@
m_container = container;
m_items = new ArrayList ();
}
-
+
public void Add (<%=$cur_coll.type%> value)
{
m_items.Add (value);
@@ -67,7 +67,7 @@
{
return m_items.Contains (value);
}
-
+
public int IndexOf (<%=$cur_coll.type%> value)
{
return m_items.IndexOf (value);
Modified: trunk/cecil/lib/CodeGen/templates/LzIndexedCollectionImplem.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/LzIndexedCollectionImplem.cs
2005-07-14 11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/CodeGen/templates/LzIndexedCollectionImplem.cs
2005-07-14 12:25:12 UTC (rev 47300)
@@ -65,13 +65,13 @@
{
m_container = container;
m_items = new ArrayList ();
- }
+ }
public <%=$cur_coll.name%> (<%=$cur_coll.container_impl%>
container, ReflectionController controller) : this (container)
{
m_controller = controller;
}
-
+
public void Add (<%=$cur_coll.type%> value)
{
m_items.Add (value);
@@ -86,7 +86,7 @@
{
return m_items.Contains (value);
}
-
+
public int IndexOf (<%=$cur_coll.type%> value)
{
Load ();
@@ -119,7 +119,7 @@
Load ();
return m_items.GetEnumerator ();
}
-
+
public void Load ()
{
if (m_controller != null && !m_loaded) {
Modified: trunk/cecil/lib/CodeGen/templates/LzNamedCollectionImplem.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/LzNamedCollectionImplem.cs
2005-07-14 11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/CodeGen/templates/LzNamedCollectionImplem.cs
2005-07-14 12:25:12 UTC (rev 47300)
@@ -60,12 +60,12 @@
get { return m_loaded; }
set { m_loaded = value; }
}
-
+
public <%=$cur_coll.name%> (<%=$cur_coll.container_impl%>
container)
{
m_container = container;
m_items = new Hashtable ();
- }
+ }
public <%=$cur_coll.name%> (<%=$cur_coll.container_impl%>
container, ReflectionController controller) : this (container)
{
@@ -98,7 +98,7 @@
Load ();
return m_items.Values.GetEnumerator ();
}
-
+
public void Load ()
{
if (m_controller != null && !m_loaded) {
Modified: trunk/cecil/lib/CodeGen/templates/MetadataTableWriter.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/MetadataTableWriter.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/CodeGen/templates/MetadataTableWriter.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -47,7 +47,7 @@
Type tt = typeof (<%=table.table_name%>);
if (m_heap.HasTable (tt))
return m_heap [tt] as <%=table.table_name%>;
-
+
<%=table.table_name%> table = new <%=table.table_name%>
();
m_heap.Valid |= 1L << TablesHeap.GetTableId (tt);
return table;
Modified: trunk/cecil/lib/CodeGen/templates/PEOptionalHeader.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/PEOptionalHeader.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/CodeGen/templates/PEOptionalHeader.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -40,7 +40,7 @@
NTSpecificFields.Accept (visitor);
DataDirectories.Accept (visitor);
}
- <% header = $headers["PEOptionalHeader.StandardFieldsHeader"] %>
+<% header = $headers["PEOptionalHeader.StandardFieldsHeader"] %>
public sealed class StandardFieldsHeader : IHeader,
IBinaryVisitable {
<% header.fields.each { |f| %> public <%=f.type%>
<%=f.property_name%>;<% print("\n") } %>
@@ -57,7 +57,7 @@
visitor.Visit (this);
}
}
- <% header = $headers["PEOptionalHeader.NTSpecificFieldsHeader"]
%>
+<% header = $headers["PEOptionalHeader.NTSpecificFieldsHeader"] %>
public sealed class NTSpecificFieldsHeader : IHeader,
IBinaryVisitable {
<% header.fields.each { |f| %> public <%=f.type%>
<%=f.property_name%>;<% print("\n") } %>
@@ -74,7 +74,7 @@
visitor.Visit (this);
}
}
- <% header = $headers["PEOptionalHeader.DataDirectoriesHeader"]
%>
+<% header = $headers["PEOptionalHeader.DataDirectoriesHeader"] %>
public sealed class DataDirectoriesHeader : IHeader,
IBinaryVisitable {
<% header.fields.each { |f| %> public <%=f.type%>
<%=f.property_name%>;<% print("\n") } %>
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/CodedIndex.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/CodedIndex.cs 2005-07-14 11:57:19 UTC
(rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/CodedIndex.cs 2005-07-14 12:25:12 UTC
(rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -17,10 +17,6 @@
public enum CodedIndex {
TypeDefOrRef,
- HasConstant,
- HasCustomAttribute,
- HasFieldMarshal,
- HasDeclSecurity,
MemberRefParent,
HasSemantics,
MethodDefOrRef,
@@ -28,6 +24,10 @@
Implementation,
CustomAttributeType,
ResolutionScope,
- TypeOrMethodDef
+ TypeOrMethodDef,
+ HasConstant,
+ HasCustomAttribute,
+ HasFieldMarshal,
+ HasDeclSecurity
}
}
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/IMetadataVisitor.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/IMetadataVisitor.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/IMetadataVisitor.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:32 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -44,8 +44,8 @@
void Visit (ConstantTable table);
void Visit (CustomAttributeTable table);
void Visit (DeclSecurityTable table);
+ void Visit (EventTable table);
void Visit (EventMapTable table);
- void Visit (EventTable table);
void Visit (ExportedTypeTable table);
void Visit (FieldTable table);
void Visit (FieldLayoutTable table);
@@ -90,8 +90,8 @@
void Visit(ConstantRow row);
void Visit(CustomAttributeRow row);
void Visit(DeclSecurityRow row);
+ void Visit(EventRow row);
void Visit(EventMapRow row);
- void Visit(EventRow row);
void Visit(ExportedTypeRow row);
void Visit(FieldRow row);
void Visit(FieldLayoutRow row);
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowReader.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowReader.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -60,45 +60,6 @@
tables.Add (typeof (TypeRefTable));
tables.Add (typeof (TypeSpecTable));
break;
- case CodedIndex.HasConstant :
- bits = 2;
- tables.Add (typeof (FieldTable));
- tables.Add (typeof (ParamTable));
- tables.Add (typeof (PropertyTable));
- break;
- case CodedIndex.HasCustomAttribute :
- bits = 5;
- tables.Add (typeof (MethodTable));
- tables.Add (typeof (FieldTable));
- tables.Add (typeof (TypeRefTable));
- tables.Add (typeof (TypeDefTable));
- tables.Add (typeof (ParamTable));
- tables.Add (typeof (InterfaceImplTable));
- tables.Add (typeof (MemberRefTable));
- tables.Add (typeof (ModuleTable));
- tables.Add (typeof (DeclSecurityTable));
- tables.Add (typeof (PropertyTable));
- tables.Add (typeof (EventTable));
- tables.Add (typeof (StandAloneSigTable));
- tables.Add (typeof (ModuleRefTable));
- tables.Add (typeof (TypeSpecTable));
- tables.Add (typeof (AssemblyTable));
- tables.Add (typeof (AssemblyRefTable));
- tables.Add (typeof (FileTable));
- tables.Add (typeof (ExportedTypeTable));
- tables.Add (typeof (ManifestResourceTable));
- break;
- case CodedIndex.HasFieldMarshal :
- bits = 1;
- tables.Add (typeof (FieldTable));
- tables.Add (typeof (ParamTable));
- break;
- case CodedIndex.HasDeclSecurity :
- bits = 2;
- tables.Add (typeof (TypeDefTable));
- tables.Add (typeof (MethodTable));
- tables.Add (typeof (AssemblyTable));
- break;
case CodedIndex.MemberRefParent :
bits = 3;
tables.Add (typeof (TypeRefTable));
@@ -144,6 +105,45 @@
tables.Add (typeof (TypeDefTable));
tables.Add (typeof (MethodTable));
break;
+ case CodedIndex.HasConstant :
+ bits = 2;
+ tables.Add (typeof (FieldTable));
+ tables.Add (typeof (ParamTable));
+ tables.Add (typeof (PropertyTable));
+ break;
+ case CodedIndex.HasCustomAttribute :
+ bits = 5;
+ tables.Add (typeof (MethodTable));
+ tables.Add (typeof (FieldTable));
+ tables.Add (typeof (TypeRefTable));
+ tables.Add (typeof (TypeDefTable));
+ tables.Add (typeof (ParamTable));
+ tables.Add (typeof (InterfaceImplTable));
+ tables.Add (typeof (MemberRefTable));
+ tables.Add (typeof (ModuleTable));
+ tables.Add (typeof (DeclSecurityTable));
+ tables.Add (typeof (PropertyTable));
+ tables.Add (typeof (EventTable));
+ tables.Add (typeof (StandAloneSigTable));
+ tables.Add (typeof (ModuleRefTable));
+ tables.Add (typeof (TypeSpecTable));
+ tables.Add (typeof (AssemblyTable));
+ tables.Add (typeof (AssemblyRefTable));
+ tables.Add (typeof (FileTable));
+ tables.Add (typeof (ExportedTypeTable));
+ tables.Add (typeof (ManifestResourceTable));
+ break;
+ case CodedIndex.HasFieldMarshal :
+ bits = 1;
+ tables.Add (typeof (FieldTable));
+ tables.Add (typeof (ParamTable));
+ break;
+ case CodedIndex.HasDeclSecurity :
+ bits = 2;
+ tables.Add (typeof (TypeDefTable));
+ tables.Add (typeof (MethodTable));
+ tables.Add (typeof (AssemblyTable));
+ break;
}
foreach (Type t in tables) {
int rows = m_mtrv.GetNumberOfRows (t);
@@ -260,12 +260,6 @@
row.PermissionSet = ReadByIndexSize (m_blobHeapIdxSz);
}
- public void Visit (EventMapRow row)
- {
- row.Parent = ReadByIndexSize (GetIndexSize (typeof
(TypeDefTable)));
- row.EventList = ReadByIndexSize (GetIndexSize (typeof
(EventTable)));
- }
-
public void Visit (EventRow row)
{
row.EventFlags = (Mono.Cecil.EventAttributes)
m_binaryReader.ReadUInt16 ();
@@ -274,6 +268,12 @@
ReadByIndexSize (GetCodedIndexSize
(CodedIndex.TypeDefOrRef)));
}
+ public void Visit (EventMapRow row)
+ {
+ row.Parent = ReadByIndexSize (GetIndexSize (typeof
(TypeDefTable)));
+ row.EventList = ReadByIndexSize (GetIndexSize (typeof
(EventTable)));
+ }
+
public void Visit (ExportedTypeRow row)
{
row.Flags = (Mono.Cecil.TypeAttributes)
m_binaryReader.ReadUInt32 ();
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowWriter.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowWriter.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/MetadataRowWriter.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -131,14 +131,6 @@
return row;
}
- public EventMapRow CreateEventMapRow (uint _parent, uint
_eventList)
- {
- EventMapRow row = new EventMapRow ();
- row.Parent = _parent;
- row.EventList = _eventList;
- return row;
- }
-
public EventRow CreateEventRow (EventAttributes _eventFlags,
uint _name, MetadataToken _eventType)
{
EventRow row = new EventRow ();
@@ -148,6 +140,14 @@
return row;
}
+ public EventMapRow CreateEventMapRow (uint _parent, uint
_eventList)
+ {
+ EventMapRow row = new EventMapRow ();
+ row.Parent = _parent;
+ row.EventList = _eventList;
+ return row;
+ }
+
public ExportedTypeRow CreateExportedTypeRow (TypeAttributes
_flags, uint _typeDefId, uint _typeName, uint _typeNamespace, MetadataToken
_implementation)
{
ExportedTypeRow row = new ExportedTypeRow ();
@@ -425,11 +425,11 @@
{
}
- public void Visit (EventMapRow row)
+ public void Visit (EventRow row)
{
}
- public void Visit (EventRow row)
+ public void Visit (EventMapRow row)
{
}
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:16 CEST 2005
*
*****************************************************************************/
@@ -301,20 +301,20 @@
table.Rows.Add (new DeclSecurityRow ());
}
- public void Visit (EventMapTable table)
+ public void Visit (EventTable table)
{
- int number = GetNumberOfRows (typeof (EventMapTable));
+ int number = GetNumberOfRows (typeof (EventTable));
table.Rows = new RowCollection (number);
for (int i = 0; i < number; i++)
- table.Rows.Add (new EventMapRow ());
+ table.Rows.Add (new EventRow ());
}
- public void Visit (EventTable table)
+ public void Visit (EventMapTable table)
{
- int number = GetNumberOfRows (typeof (EventTable));
+ int number = GetNumberOfRows (typeof (EventMapTable));
table.Rows = new RowCollection (number);
for (int i = 0; i < number; i++)
- table.Rows.Add (new EventRow ());
+ table.Rows.Add (new EventMapRow ());
}
public void Visit (ExportedTypeTable table)
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableWriter.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableWriter.cs 2005-07-14
11:57:19 UTC (rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableWriter.cs 2005-07-14
12:25:12 UTC (rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -152,24 +152,24 @@
return table;
}
- public EventMapTable GetEventMapTable ()
+ public EventTable GetEventTable ()
{
- Type tt = typeof (EventMapTable);
+ Type tt = typeof (EventTable);
if (m_heap.HasTable (tt))
- return m_heap [tt] as EventMapTable;
+ return m_heap [tt] as EventTable;
- EventMapTable table = new EventMapTable ();
+ EventTable table = new EventTable ();
m_heap.Valid |= 1L << TablesHeap.GetTableId (tt);
return table;
}
- public EventTable GetEventTable ()
+ public EventMapTable GetEventMapTable ()
{
- Type tt = typeof (EventTable);
+ Type tt = typeof (EventMapTable);
if (m_heap.HasTable (tt))
- return m_heap [tt] as EventTable;
+ return m_heap [tt] as EventMapTable;
- EventTable table = new EventTable ();
+ EventMapTable table = new EventMapTable ();
m_heap.Valid |= 1L << TablesHeap.GetTableId (tt);
return table;
}
@@ -505,11 +505,11 @@
{
}
- public void Visit (EventMapTable table)
+ public void Visit (EventTable table)
{
}
- public void Visit (EventTable table)
+ public void Visit (EventMapTable table)
{
}
Modified: trunk/cecil/lib/Mono.Cecil.Metadata/Utilities.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/Utilities.cs 2005-07-14 11:57:19 UTC
(rev 47299)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/Utilities.cs 2005-07-14 12:25:12 UTC
(rev 47300)
@@ -9,7 +9,7 @@
* See LICENSE.MIT file for more details
*
* Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Jul 05 15:48:31 Paris, Madrid 2005
+ * Thu Jul 14 14:17:17 CEST 2005
*
*****************************************************************************/
@@ -77,84 +77,6 @@
default :
throw new MetadataFormatException("Non
valid tag for TypeDefOrRef");
}
- case CodedIndex.HasConstant :
- rid = data >> 2;
- switch (data & 3) {
- case 0 :
- return new MetadataToken
(TokenType.Field, rid);
- case 1 :
- return new MetadataToken
(TokenType.Param, rid);
- case 2 :
- return new MetadataToken
(TokenType.Property, rid);
- default :
- throw new MetadataFormatException("Non
valid tag for HasConstant");
- }
- case CodedIndex.HasCustomAttribute :
- rid = data >> 5;
- switch (data & 31) {
- case 0 :
- return new MetadataToken
(TokenType.Method, rid);
- case 1 :
- return new MetadataToken
(TokenType.Field, rid);
- case 2 :
- return new MetadataToken
(TokenType.TypeRef, rid);
- case 3 :
- return new MetadataToken
(TokenType.TypeDef, rid);
- case 4 :
- return new MetadataToken
(TokenType.Param, rid);
- case 5 :
- return new MetadataToken
(TokenType.InterfaceImpl, rid);
- case 6 :
- return new MetadataToken
(TokenType.MemberRef, rid);
- case 7 :
- return new MetadataToken
(TokenType.Module, rid);
- case 8 :
- return new MetadataToken
(TokenType.Permission, rid);
- case 9 :
- return new MetadataToken
(TokenType.Property, rid);
- case 10 :
- return new MetadataToken
(TokenType.Event, rid);
- case 11 :
- return new MetadataToken
(TokenType.Signature, rid);
- case 12 :
- return new MetadataToken
(TokenType.ModuleRef, rid);
- case 13 :
- return new MetadataToken
(TokenType.TypeSpec, rid);
- case 14 :
- return new MetadataToken
(TokenType.Assembly, rid);
- case 15 :
- return new MetadataToken
(TokenType.AssemblyRef, rid);
- case 16 :
- return new MetadataToken
(TokenType.File, rid);
- case 17 :
- return new MetadataToken
(TokenType.ExportedType, rid);
- case 18 :
- return new MetadataToken
(TokenType.ManifestResource, rid);
- default :
- throw new MetadataFormatException("Non
valid tag for HasCustomAttribute");
- }
- case CodedIndex.HasFieldMarshal :
- rid = data >> 1;
- switch (data & 1) {
- case 0 :
- return new MetadataToken
(TokenType.Field, rid);
- case 1 :
- return new MetadataToken
(TokenType.Param, rid);
- default :
- throw new MetadataFormatException("Non
valid tag for HasFieldMarshal");
- }
- case CodedIndex.HasDeclSecurity :
- rid = data >> 2;
- switch (data & 3) {
- case 0 :
- return new MetadataToken
(TokenType.TypeDef, rid);
- case 1 :
- return new MetadataToken
(TokenType.Method, rid);
- case 2 :
- return new MetadataToken
(TokenType.Assembly, rid);
- default :
- throw new MetadataFormatException("Non
valid tag for HasDeclSecurity");
- }
case CodedIndex.MemberRefParent :
rid = data >> 3;
switch (data & 7) {
@@ -245,6 +167,84 @@
default :
throw new MetadataFormatException("Non
valid tag for TypeOrMethodDef");
}
+ case CodedIndex.HasConstant :
+ rid = data >> 2;
+ switch (data & 3) {
+ case 0 :
+ return new MetadataToken
(TokenType.Field, rid);
+ case 1 :
+ return new MetadataToken
(TokenType.Param, rid);
+ case 2 :
+ return new MetadataToken
(TokenType.Property, rid);
+ default :
+ throw new MetadataFormatException("Non
valid tag for HasConstant");
+ }
+ case CodedIndex.HasCustomAttribute :
+ rid = data >> 5;
+ switch (data & 31) {
+ case 0 :
+ return new MetadataToken
(TokenType.Method, rid);
+ case 1 :
+ return new MetadataToken
(TokenType.Field, rid);
+ case 2 :
+ return new MetadataToken
(TokenType.TypeRef, rid);
+ case 3 :
+ return new MetadataToken
(TokenType.TypeDef, rid);
+ case 4 :
+ return new MetadataToken
(TokenType.Param, rid);
+ case 5 :
+ return new MetadataToken
(TokenType.InterfaceImpl, rid);
+ case 6 :
+ return new MetadataToken
(TokenType.MemberRef, rid);
+ case 7 :
+ return new MetadataToken
(TokenType.Module, rid);
+ case 8 :
+ return new MetadataToken
(TokenType.Permission, rid);
+ case 9 :
+ return new MetadataToken
(TokenType.Property, rid);
+ case 10 :
+ return new MetadataToken
(TokenType.Event, rid);
+ case 11 :
+ return new MetadataToken
(TokenType.Signature, rid);
+ case 12 :
+ return new MetadataToken
(TokenType.ModuleRef, rid);
+ case 13 :
+ return new MetadataToken
(TokenType.TypeSpec, rid);
+ case 14 :
+ return new MetadataToken
(TokenType.Assembly, rid);
+ case 15 :
+ return new MetadataToken
(TokenType.AssemblyRef, rid);
+ case 16 :
+ return new MetadataToken
(TokenType.File, rid);
+ case 17 :
+ return new MetadataToken
(TokenType.ExportedType, rid);
+ case 18 :
+ return new MetadataToken
(TokenType.ManifestResource, rid);
+ default :
+ throw new MetadataFormatException("Non
valid tag for HasCustomAttribute");
+ }
+ case CodedIndex.HasFieldMarshal :
+ rid = data >> 1;
+ switch (data & 1) {
+ case 0 :
+ return new MetadataToken
(TokenType.Field, rid);
+ case 1 :
+ return new MetadataToken
(TokenType.Param, rid);
+ default :
+ throw new MetadataFormatException("Non
valid tag for HasFieldMarshal");
+ }
+ case CodedIndex.HasDeclSecurity :
+ rid = data >> 2;
+ switch (data & 3) {
+ case 0 :
+ return new MetadataToken
(TokenType.TypeDef, rid);
+ case 1 :
+ return new MetadataToken
(TokenType.Method, rid);
+ case 2 :
+ return new MetadataToken
(TokenType.Assembly, rid);
+ default :
+ throw new MetadataFormatException("Non
valid tag for HasDeclSecurity");
+ }
default :
throw new MetadataFormatException ("Non valid
CodedIndex");
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches