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>2011-10-27 18:55:29 +0400
committerJb Evain <jbevain@gmail.com>2011-10-27 18:55:29 +0400
commit2c2a311bdac229c3f2324895b9953c83324ce62a (patch)
tree0a1707ab3fc77c49d3f5f6f51628089ccffb1d19 /Mono.Cecil.Metadata/UserStringHeap.cs
parentd8b4ce06e180970f805d0372cbac037b0d58dc90 (diff)
revert last two experimentations
Diffstat (limited to 'Mono.Cecil.Metadata/UserStringHeap.cs')
-rw-r--r--Mono.Cecil.Metadata/UserStringHeap.cs24
1 files changed, 10 insertions, 14 deletions
diff --git a/Mono.Cecil.Metadata/UserStringHeap.cs b/Mono.Cecil.Metadata/UserStringHeap.cs
index b33eea8..7046eff 100644
--- a/Mono.Cecil.Metadata/UserStringHeap.cs
+++ b/Mono.Cecil.Metadata/UserStringHeap.cs
@@ -26,33 +26,29 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using Mono.Cecil.PE;
-
namespace Mono.Cecil.Metadata {
sealed class UserStringHeap : StringHeap {
- public UserStringHeap (Image image, uint offset, uint size)
- : base (image, offset, size)
+ public UserStringHeap (byte [] data)
+ : base (data)
{
}
protected override string ReadStringAt (uint index)
{
- return ReadAt (index, reader => {
- uint length = (uint) (reader.ReadCompressedUInt32 () & ~1);
- var data = reader.ReadBytes ((int) length);
+ int start = (int) index;
- if (length < 1)
- return string.Empty;
+ uint length = (uint) (data.ReadCompressedUInt32 (ref start) & ~1);
+ if (length < 1)
+ return string.Empty;
- var chars = new char [length / 2];
+ var chars = new char [length / 2];
- for (int i = 0, j = 0; i < length; i += 2)
- chars [j++] = (char) (data [i] | (data [i + 1] << 8));
+ for (int i = start, j = 0; i < start + length; i += 2)
+ chars [j++] = (char) (data [i] | (data [i + 1] << 8));
- return new string (chars);
- });
+ return new string (chars);
}
}
}