summaryrefslogtreecommitdiff
path: root/BCT/BytecodeTranslator/MetadataTraverser.cs
diff options
context:
space:
mode:
authorGravatar Unknown <t-espave@A3479886.redmond.corp.microsoft.com>2011-06-08 15:07:38 -0700
committerGravatar Unknown <t-espave@A3479886.redmond.corp.microsoft.com>2011-06-08 15:07:38 -0700
commit85b0325b1134ff7070d3e71c965d48a6bf1007c6 (patch)
tree031f1e1a4ed92372f954d302d0a8519643155ec4 /BCT/BytecodeTranslator/MetadataTraverser.cs
parent6f26e1f62acd7dd02e2a6800514c6b9de5620c89 (diff)
parent42c53129186963cc9ea525c6caebd04bcdbe70e1 (diff)
using registerAsLatest directly to deal with multiple dll translation
Diffstat (limited to 'BCT/BytecodeTranslator/MetadataTraverser.cs')
-rw-r--r--BCT/BytecodeTranslator/MetadataTraverser.cs22
1 files changed, 11 insertions, 11 deletions
diff --git a/BCT/BytecodeTranslator/MetadataTraverser.cs b/BCT/BytecodeTranslator/MetadataTraverser.cs
index b816a439..5b61a6ca 100644
--- a/BCT/BytecodeTranslator/MetadataTraverser.cs
+++ b/BCT/BytecodeTranslator/MetadataTraverser.cs
@@ -104,7 +104,7 @@ namespace BytecodeTranslator {
var proc = this.sink.FindOrCreateProcedureForDefaultStructCtor(typeDefinition);
this.sink.BeginMethod(typeDefinition);
- var stmtTranslator = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false);
+ var stmtTranslator = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false, null, null);
var stmts = new List<IStatement>();
foreach (var f in typeDefinition.Fields) {
@@ -207,7 +207,7 @@ namespace BytecodeTranslator {
this.sink.BeginMethod(typeDefinition);
- var stmtTranslator = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false);
+ var stmtTranslator = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false, null, null);
var stmts = new List<IStatement>();
foreach (var f in typeDefinition.Fields) {
@@ -262,12 +262,12 @@ namespace BytecodeTranslator {
return;
- Sink.ProcedureInfo procAndFormalMap;
+ Sink.ProcedureInfo procInfo;
IMethodDefinition stubMethod = null;
if (IsStubMethod(method, out stubMethod)) {
- procAndFormalMap = this.sink.FindOrCreateProcedureAndReturnProcAndFormalMap(stubMethod);
+ procInfo = this.sink.FindOrCreateProcedure(stubMethod);
} else {
- procAndFormalMap = this.sink.FindOrCreateProcedureAndReturnProcAndFormalMap(method);
+ procInfo = this.sink.FindOrCreateProcedure(method);
}
if (method.IsAbstract) { // we're done, just define the procedure
@@ -275,14 +275,14 @@ namespace BytecodeTranslator {
}
this.sink.BeginMethod(method);
- var decl = procAndFormalMap.Decl;
+ var decl = procInfo.Decl;
var proc = decl as Bpl.Procedure;
- var formalMap = procAndFormalMap.FormalMap;
- this.sink.RetVariable = procAndFormalMap.ReturnVariable;
+ var formalMap = procInfo.FormalMap;
try {
-
- StatementTraverser stmtTraverser = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false);
+ MostNestedTryStatementTraverser tryStatementTraverser = new MostNestedTryStatementTraverser();
+ tryStatementTraverser.Visit(method.Body);
+ StatementTraverser stmtTraverser = this.factory.MakeStatementTraverser(this.sink, this.PdbReader, false, null, null);
#region Add assignments from In-Params to local-Params
@@ -373,7 +373,7 @@ namespace BytecodeTranslator {
foreach (Bpl.Variable v in this.sink.LocalVarMap.Values) {
vars.Add(v);
}
-
+ vars.Add(procInfo.LocalExcVariable);
Bpl.VariableSeq vseq = new Bpl.VariableSeq(vars.ToArray());
#endregion