**** Merged from MCS ****
[mono-project.git] / mcs / class / Mono.PEToolkit / metadata / GUIDHeap.cs
blobd396a740fa7066d79eaae62c7f2dc6a0d7df3719
1 /*
2 * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
3 */
5 using System;
7 namespace Mono.PEToolkit.Metadata {
9 /// <summary>
10 /// #GUID heap
11 /// </summary>
12 /// <remarks>
13 /// 23.1.5
14 /// </remarks>
15 public class GUIDHeap : MDHeap {
17 private byte [] data;
19 internal GUIDHeap(MDStream stream) : base(stream)
23 unsafe override public void FromRawData(byte [] rawData)
25 data = rawData;
28 public Guid this [int index] {
29 get {
30 if (index + 16 > data.Length)
31 throw new IndexOutOfRangeException();
32 byte [] buff = new byte [16];
33 Buffer.BlockCopy(data, index, buff, 0, 16);
34 return new Guid(buff);