Skip to content

Commit eec5439

Browse files
authored
Merge pull request #84 from JetBrains/softInvocationRefactoringPR
[SoftDebugger] Refactoring of methods invocation on mirrors
2 parents fdbf872 + b1416c2 commit eec5439

File tree

8 files changed

+429
-483
lines changed

8 files changed

+429
-483
lines changed

Mono.Debugger.Soft/Mono.Debugger.Soft.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
<Compile Include="Mono.Debugger.Soft\ExceptionEvent.cs" />
6262
<Compile Include="Mono.Debugger.Soft\ExceptionEventRequest.cs" />
6363
<Compile Include="Mono.Debugger.Soft\FieldInfoMirror.cs" />
64+
<Compile Include="Mono.Debugger.Soft\IInvocableMethodOwnerMirror.cs" />
6465
<Compile Include="Mono.Debugger.Soft\IInvokeAsyncResult.cs" />
6566
<Compile Include="Mono.Debugger.Soft\ILExceptionHandler.cs" />
6667
<Compile Include="Mono.Debugger.Soft\ILInstruction.cs" />
@@ -69,6 +70,7 @@
6970
<Compile Include="Mono.Debugger.Soft\InterfaceMappingMirror.cs" />
7071
<Compile Include="Mono.Debugger.Soft\InvalidStackFrameException.cs" />
7172
<Compile Include="Mono.Debugger.Soft\InvocationException.cs" />
73+
<Compile Include="Mono.Debugger.Soft\InvocationsAPI.cs" />
7274
<Compile Include="Mono.Debugger.Soft\InvokeOptions.cs" />
7375
<Compile Include="Mono.Debugger.Soft\ITargetProcess.cs" />
7476
<Compile Include="Mono.Debugger.Soft\LocalVariable.cs" />
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace Mono.Debugger.Soft
2+
{
3+
/// <summary>
4+
/// Interface to mark a mirror that supports method invocation
5+
/// </summary>
6+
public interface IInvocableMethodOwnerMirror : IMirror
7+
{
8+
/// <summary>
9+
/// Value that will be passed as 'this' reference when invoking a method (can be null e.g. for static methods)
10+
/// </summary>
11+
/// <returns>'this' reference</returns>
12+
Value GetThisObject ();
13+
14+
/// <summary>
15+
/// Make some additional processing of invocation result. See implementation in <see cref="StructMirror"/>
16+
/// </summary>
17+
/// <param name="result"></param>
18+
void ProcessResult (IInvokeResult result);
19+
}
20+
}

0 commit comments

Comments
 (0)