* MDStream.cs: Use PEUtils.GetString instead of new string (byte*)
authorJackson Harper <jackson@novell.com>
Tue, 18 Feb 2003 07:16:00 +0000 (07:16 -0000)
committerJackson Harper <jackson@novell.com>
Tue, 18 Feb 2003 07:16:00 +0000 (07:16 -0000)
        * Rows.cs: Cast a bunch of enums to int when displaying
   them otherwise an Exception is thrown.,
                   this is probably a bug but I haven't had
   time to track it down yet.
        * StringHeap.cs: Use PEUtils.GetString instead of new string (byte*)

svn path=/trunk/mcs/; revision=11682

mcs/class/Mono.PEToolkit/metadata/ChangeLog [new file with mode: 0644]
mcs/class/Mono.PEToolkit/metadata/MDStream.cs
mcs/class/Mono.PEToolkit/metadata/MetaDataRoot.cs
mcs/class/Mono.PEToolkit/metadata/Rows.cs
mcs/class/Mono.PEToolkit/metadata/StringsHeap.cs

diff --git a/mcs/class/Mono.PEToolkit/metadata/ChangeLog b/mcs/class/Mono.PEToolkit/metadata/ChangeLog
new file mode 100644 (file)
index 0000000..4e0aae7
--- /dev/null
@@ -0,0 +1,6 @@
+2003-02-17 Jackson Harper <jackson@latitudegeo.com>
+
+       * MDStream.cs: Use PEUtils.GetString instead of new string (byte*)
+       * Rows.cs: Cast a bunch of enums to int when displaying them otherwise an Exception is thrown.,
+                  this is probably a bug but I haven't had time to track it down yet.
+       * StringHeap.cs: Use PEUtils.GetString instead of new string (byte*)
index 25c5c3b128eb090e662a0665c4ea620544770b46..fb3d02ce35346160fc84dfb13a1ce800a75acd3d 100644 (file)
@@ -42,7 +42,7 @@ namespace Mono.PEToolkit.Metadata {
 \r
                                int len = (int) (p - pName);\r
                                if (len != 0) {\r
-                                       name = new string(pName, 0, len, Encoding.ASCII);\r
+                                       name = PEUtils.GetString (pName, 0, len, Encoding.ASCII);\r
                                } else {\r
                                        throw new BadImageException("Invalid stream name.");\r
                                }\r
index 9fd9b699eb8880581b1d0b6585a1a8c0bfcdbbba..0691a1513356a9fd7ae737a0ec43d518a4b89b3f 100644 (file)
@@ -127,7 +127,7 @@ namespace Mono.PEToolkit.Metadata {
                                        *p++ = c;\r
                                }\r
 \r
-                               verStr = new string(pVer, 0, len-i-1, Encoding.UTF8);\r
+                               verStr = PEUtils.GetString (pVer, 0, len-i-1, Encoding.UTF8);\r
 \r
                                // Round up to dword boundary, relative to header start.\r
                                pos += len;\r
index 1b01343052fd8b0f64aea14757414daa63da3c60..7853f118f7c138e8c8d7ca469ef4d7e5bd75483b 100644 (file)
@@ -342,7 +342,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Extends           : {3}" + Environment.NewLine + \r
                                "FieldList         : {4}" + Environment.NewLine + \r
                                "MethodList        : {5}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                (Table == null) ? Namespace.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Namespace] + "\" (#Strings[0x" + Namespace.ToString("X") + "])",\r
                                this.Extends,\r
@@ -557,7 +557,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Flags             : {0}" + Environment.NewLine + \r
                                "Name              : {1}" + Environment.NewLine + \r
                                "Signature         : {2}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                "#Blob[" + Signature.ToString() + "]"\r
                        );\r
@@ -783,7 +783,7 @@ namespace Mono.PEToolkit.Metadata {
                                "ParamList         : {5}" + Environment.NewLine,\r
                                this.RVA,\r
                                this.ImplFlags,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                "#Blob[" + Signature.ToString() + "]",\r
                                "Param[" + ParamList.ToString() + "]"\r
@@ -996,7 +996,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Flags             : {0}" + Environment.NewLine + \r
                                "Sequence          : {1}" + Environment.NewLine + \r
                                "Name              : {2}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                this.Sequence,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])"\r
                        );\r
@@ -2606,7 +2606,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Flags             : {0}" + Environment.NewLine + \r
                                "Name              : {1}" + Environment.NewLine + \r
                                "Type              : {2}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                "#Blob[" + Type.ToString() + "]"\r
                        );\r
@@ -2717,7 +2717,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Semantics         : {0}" + Environment.NewLine + \r
                                "Method            : {1}" + Environment.NewLine + \r
                                "Association       : {2}" + Environment.NewLine,\r
-                               this.Semantics,\r
+                               (int)this.Semantics,\r
                                "Method[" + Method.ToString() + "]",\r
                                this.Association\r
                        );\r
@@ -3599,7 +3599,7 @@ namespace Mono.PEToolkit.Metadata {
                                this.MinorVersion,\r
                                this.BuildNumber,\r
                                this.RevisionNumber,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                "#Blob[" + PublicKey.ToString() + "]",\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                (Table == null) ? Culture.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Culture] + "\" (#Strings[0x" + Culture.ToString("X") + "])"\r
@@ -3951,7 +3951,7 @@ namespace Mono.PEToolkit.Metadata {
                                this.MinorVersion,\r
                                this.BuildNumber,\r
                                this.RevisionNumber,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                "#Blob[" + PublicKeyOrToken.ToString() + "]",\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                (Table == null) ? Culture.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Culture] + "\" (#Strings[0x" + Culture.ToString("X") + "])",\r
@@ -4286,7 +4286,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Flags             : {0}" + Environment.NewLine + \r
                                "Name              : {1}" + Environment.NewLine + \r
                                "HashValue         : {2}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                "#Blob[" + HashValue.ToString() + "]"\r
                        );\r
@@ -4405,7 +4405,7 @@ namespace Mono.PEToolkit.Metadata {
                                "TypeName          : {2}" + Environment.NewLine + \r
                                "TypeNamespace     : {3}" + Environment.NewLine + \r
                                "Implementation    : {4}" + Environment.NewLine,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                "TypeDef[" + TypeDefId.ToString() + "]",\r
                                (Table == null) ? TypeName.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [TypeName] + "\" (#Strings[0x" + TypeName.ToString("X") + "])",\r
                                (Table == null) ? TypeNamespace.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [TypeNamespace] + "\" (#Strings[0x" + TypeNamespace.ToString("X") + "])",\r
@@ -4523,7 +4523,7 @@ namespace Mono.PEToolkit.Metadata {
                                "Name              : {2}" + Environment.NewLine + \r
                                "Implementation    : {3}" + Environment.NewLine,\r
                                this.Offset,\r
-                               this.Flags,\r
+                               (int)this.Flags,\r
                                (Table == null) ? Name.ToString() : "\"" + ((Table.Heap.Stream.Root.Streams["#Strings"] as MDStream).Heap as StringsHeap) [Name] + "\" (#Strings[0x" + Name.ToString("X") + "])",\r
                                this.Implementation\r
                        );\r
index 02953f34c9eb65955f75be55c8993f22837fa19e..788a1b32befd9b0774082c7a96615952119bf2e6 100644 (file)
@@ -35,7 +35,7 @@ namespace Mono.PEToolkit.Metadata {
                        for (int i = 1; i < len; i++) {\r
                                if (rawData [i] == 0) {\r
                                        fixed (void* p = &rawData[idx]) {\r
-                                               string s = new string ((sbyte*)p, 0, i - idx, Encoding.UTF8);\r
+                                               string s = PEUtils.GetString ((sbyte*)p, 0, i - idx, Encoding.UTF8);\r
                                                strings.Add (idx, s);\r
                                        }\r
                                        idx = i + 1;\r