2010-06-21 Atsushi Enomoto <atsushi@ximian.com>
[mcs.git] / class / corlib / System.Reflection / MethodBody.cs
blobf274cc4a5f193e9e03e9cf64dd69517e48738ba1
1 //
2 // System.Reflection/MethodBody.cs
3 //
4 // Author:
5 // Zoltan Varga (vargaz@gmail.com)
6 //
7 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 using System;
31 using System.Collections.Generic;
32 using System.Runtime.CompilerServices;
33 using System.Runtime.InteropServices;
35 namespace System.Reflection {
37 [ComVisible (true)]
38 public
39 #if !NET_4_0
40 sealed
41 #endif
42 class MethodBody {
43 #pragma warning disable 649
44 #region Sync with reflection.h
45 ExceptionHandlingClause[] clauses;
46 LocalVariableInfo[] locals;
47 byte[] il;
48 bool init_locals;
49 int sig_token;
50 int max_stack;
51 #endregion
52 #pragma warning restore 649
54 #if NET_4_0
55 protected
56 #else
57 internal
58 #endif
59 MethodBody () {
62 public
63 #if NET_4_0
64 virtual
65 #endif
66 IList<ExceptionHandlingClause> ExceptionHandlingClauses {
67 get {
68 return Array.AsReadOnly<ExceptionHandlingClause> (clauses);
72 public
73 #if NET_4_0
74 virtual
75 #endif
76 IList<LocalVariableInfo> LocalVariables {
77 get {
78 return Array.AsReadOnly<LocalVariableInfo> (locals);
82 public
83 #if NET_4_0
84 virtual
85 #endif
86 bool InitLocals {
87 get {
88 return init_locals;
92 public
93 #if NET_4_0
94 virtual
95 #endif
96 int LocalSignatureMetadataToken {
97 get {
98 return sig_token;
103 public
104 #if NET_4_0
105 virtual
106 #endif
107 int MaxStackSize {
108 get {
109 return max_stack;
113 public
114 #if NET_4_0
115 virtual
116 #endif
117 byte[] GetILAsByteArray () {
118 return il;