diff options
author | Jb Evain <jbevain@gmail.com> | 2017-03-21 04:07:37 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-21 04:07:37 +0300 |
commit | 22e15aca479e847f146f8af6e132735d47d66053 (patch) | |
tree | f2b49068b35cb43c51eace1dc8f9e3d95f726cac /Mono.Cecil.PE | |
parent | 73b54c68399f39668a2cb774428a7e659f08a761 (diff) | |
parent | febdb3594335753282f87e8eb37451704eb7a927 (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.cs | 7 | ||||
-rw-r--r-- | Mono.Cecil.PE/BinaryStreamWriter.cs | 15 |
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); + } } } |