Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jbevain@gmail.com>2017-03-21 04:07:37 +0300
committerGitHub <noreply@github.com>2017-03-21 04:07:37 +0300
commit22e15aca479e847f146f8af6e132735d47d66053 (patch)
treef2b49068b35cb43c51eace1dc8f9e3d95f726cac /Mono.Cecil.PE
parent73b54c68399f39668a2cb774428a7e659f08a761 (diff)
parentfebdb3594335753282f87e8eb37451704eb7a927 (diff)
Merge pull request #353 from jbevain/native-pdb-integration
Native pdb integration
Diffstat (limited to 'Mono.Cecil.PE')
-rw-r--r--Mono.Cecil.PE/BinaryStreamReader.cs7
-rw-r--r--Mono.Cecil.PE/BinaryStreamWriter.cs15
2 files changed, 22 insertions, 0 deletions
diff --git a/Mono.Cecil.PE/BinaryStreamReader.cs b/Mono.Cecil.PE/BinaryStreamReader.cs
index eb4b77e..812adbc 100644
--- a/Mono.Cecil.PE/BinaryStreamReader.cs
+++ b/Mono.Cecil.PE/BinaryStreamReader.cs
@@ -39,6 +39,13 @@ namespace Mono.Cecil.PE {
BaseStream.Seek (position, SeekOrigin.Begin);
}
+ public void Align (int align)
+ {
+ align--;
+ var position = Position;
+ Advance (((position + align) & ~align) - position);
+ }
+
public DataDirectory ReadDataDirectory ()
{
return new DataDirectory (ReadUInt32 (), ReadUInt32 ());
diff --git a/Mono.Cecil.PE/BinaryStreamWriter.cs b/Mono.Cecil.PE/BinaryStreamWriter.cs
index 6e88cf0..b741f68 100644
--- a/Mono.Cecil.PE/BinaryStreamWriter.cs
+++ b/Mono.Cecil.PE/BinaryStreamWriter.cs
@@ -17,6 +17,11 @@ namespace Mono.Cecil.PE {
class BinaryStreamWriter : BinaryWriter {
+ public int Position {
+ get { return (int) BaseStream.Position; }
+ set { BaseStream.Position = value; }
+ }
+
public BinaryStreamWriter (Stream stream)
: base (stream)
{
@@ -72,6 +77,16 @@ namespace Mono.Cecil.PE {
{
BaseStream.Seek (bytes, SeekOrigin.Current);
}
+
+ public void Align (int align)
+ {
+ align--;
+ var position = Position;
+ var bytes = ((position + align) & ~align) - position;
+
+ for (int i = 0; i < bytes; i++)
+ WriteByte (0);
+ }
}
}