diff options
author | qadeer <unknown> | 2011-03-02 07:32:12 +0000 |
---|---|---|
committer | qadeer <unknown> | 2011-03-02 07:32:12 +0000 |
commit | 36a32108fa3edfa9385946f4feded3065fb2bf58 (patch) | |
tree | 5384ab6ac65857519cfe810c9f2870d4dcef20a1 /BCT/BytecodeTranslator/MetadataTraverser.cs | |
parent | da04d48c9f94af45b5bc1b3964a104c8a8c2f3e6 (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.cs | 15 |
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 {
|