summaryrefslogtreecommitdiff
path: root/BCT/BytecodeTranslator/MetadataTraverser.cs
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2011-03-02 07:32:12 +0000
committerGravatar qadeer <unknown>2011-03-02 07:32:12 +0000
commit36a32108fa3edfa9385946f4feded3065fb2bf58 (patch)
tree5384ab6ac65857519cfe810c9f2870d4dcef20a1 /BCT/BytecodeTranslator/MetadataTraverser.cs
parentda04d48c9f94af45b5bc1b3964a104c8a8c2f3e6 (diff)
some fixes
1. introduced ProcedureInfo for packaging up relevant information about a Procedure 2. removed the call to the code that generates the static class constructor. this is temporarily broken; have to discuss with mike
Diffstat (limited to 'BCT/BytecodeTranslator/MetadataTraverser.cs')
-rw-r--r--BCT/BytecodeTranslator/MetadataTraverser.cs15
1 files changed, 4 insertions, 11 deletions
diff --git a/BCT/BytecodeTranslator/MetadataTraverser.cs b/BCT/BytecodeTranslator/MetadataTraverser.cs
index a01f3a4b..ab797529 100644
--- a/BCT/BytecodeTranslator/MetadataTraverser.cs
+++ b/BCT/BytecodeTranslator/MetadataTraverser.cs
@@ -85,7 +85,7 @@ namespace BytecodeTranslator {
}
var procAndFormalMap = this.sink.FindOrCreateProcedureAndReturnProcAndFormalMap(invokeMethod, invokeMethod.IsStatic);
- var proc = procAndFormalMap.Item1;
+ var proc = procAndFormalMap.Procedure;
var invars = proc.InParams;
var outvars = proc.OutParams;
@@ -171,14 +171,8 @@ namespace BytecodeTranslator {
public override void Visit(ITypeDefinition typeDefinition) {
if (typeDefinition.IsClass) {
- bool savedSawCctor = this.sawCctor;
- this.sawCctor = false;
sink.FindOrCreateType(typeDefinition);
base.Visit(typeDefinition);
- if (!this.sawCctor) {
- CreateStaticConstructor(typeDefinition);
- }
- this.sawCctor = savedSawCctor;
} else if (typeDefinition.IsDelegate) {
sink.AddDelegateType(typeDefinition);
} else if (typeDefinition.IsInterface) {
@@ -193,8 +187,6 @@ namespace BytecodeTranslator {
}
}
- private bool sawCctor = false;
-
private void CreateStaticConstructor(ITypeDefinition typeDefinition) {
var proc = new Bpl.Procedure(Bpl.Token.NoToken,
TypeHelper.GetTypeName(typeDefinition) + ".#cctor",
@@ -263,8 +255,9 @@ namespace BytecodeTranslator {
return;
}
- var proc = procAndFormalMap.Item1;
- var formalMap = procAndFormalMap.Item2;
+ var proc = procAndFormalMap.Procedure;
+ var formalMap = procAndFormalMap.FormalMap;
+ this.sink.RetVariable = procAndFormalMap.ReturnVariable;
try {