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

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWade Berrier <wade@mono-cvs.ximian.com>2007-02-15 00:27:54 +0300
committerWade Berrier <wade@mono-cvs.ximian.com>2007-02-15 00:27:54 +0300
commit6b2181df333da3201aa21e7aac7af0092a95f155 (patch)
treec68d486b61d9f91f3ae1d5e7275364e92824d8a5
parent191ed8daf47438eee5f1deacf31c02503e5e9832 (diff)
Merged 72684 from trunkmono-1-2-3-1
svn path=/branches/mono-1-2-3/mcs/; revision=72867
-rw-r--r--mcs/mcs/ChangeLog2
-rw-r--r--mcs/mcs/const.cs11
2 files changed, 12 insertions, 1 deletions
diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog
index 829170e5de1..d30ca2b8a4b 100644
--- a/mcs/mcs/ChangeLog
+++ b/mcs/mcs/ChangeLog
@@ -6,6 +6,8 @@
* class.cs (DefineFieldInitializers): Each initializer can has different
resolve context.
+
+ * const.cs: Updated.
2007-01-27 Raja R Harinath <rharinath@novell.com>
diff --git a/mcs/mcs/const.cs b/mcs/mcs/const.cs
index 3e1e9c37dc6..5da0b004f32 100644
--- a/mcs/mcs/const.cs
+++ b/mcs/mcs/const.cs
@@ -76,6 +76,11 @@ namespace Mono.CSharp {
return false;
}
+ // If the constant is private then we don't need any field the
+ // value is already inlined and cannot be referenced
+ //if ((ModFlags & Modifiers.PRIVATE) != 0 && RootContext.Optimize)
+ // return true;
+
while (ttype.IsArray)
ttype = TypeManager.GetElementType (ttype);
@@ -91,7 +96,8 @@ namespace Mono.CSharp {
TypeManager.RegisterConstant (FieldBuilder, this);
if (ttype == TypeManager.decimal_type)
- Parent.PartialContainer.RegisterFieldForInitialization (this, new FieldInitializer (FieldBuilder, initializer));
+ Parent.PartialContainer.RegisterFieldForInitialization (this,
+ new FieldInitializer (FieldBuilder, initializer, Parent));
return true;
}
@@ -118,6 +124,9 @@ namespace Mono.CSharp {
if (!ResolveValue ())
return;
+ if (FieldBuilder == null)
+ return;
+
if (value.Type == TypeManager.decimal_type) {
Decimal d = ((DecimalConstant)value).Value;
int[] bits = Decimal.GetBits (d);