Skip to content

Commit fbcc077

Browse files
committed
Update tracers and factory
1 parent 710acb4 commit fbcc077

File tree

3 files changed

+27
-26
lines changed

3 files changed

+27
-26
lines changed

Rubberduck.VBEEditor/ComManagement/TypeLibs/DebugInternal/TypeInfoWrapperTracer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#if DEBUG && TRACE_TYPEAPI
2-
using System;
1+
using System;
32
using System.Runtime.CompilerServices;
43
using System.Runtime.InteropServices.ComTypes;
54
using Rubberduck.VBEditor.ComManagement.TypeLibs.Abstract;
@@ -748,5 +747,4 @@ int ITypeInfoWrapper.Invoke(IntPtr pvInstance, int memid, short wFlags, IntPtr p
748747
return Invoke(pvInstance, memid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
749748
}
750749
}
751-
}
752-
#endif
750+
}

Rubberduck.VBEEditor/ComManagement/TypeLibs/DebugInternal/TypeLibWrapperTracer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#if DEBUG && TRACE_TYPEAPI
2-
using System;
1+
using System;
32
using System.Runtime.CompilerServices;
43
using System.Runtime.InteropServices.ComTypes;
54
using Rubberduck.VBEditor.ComManagement.TypeLibs.Abstract;
@@ -314,5 +313,4 @@ int ITypeLibWrapper.GetSafeTypeInfoByIndex(int index, out ITypeInfoWrapper outTI
314313
return result;
315314
}
316315
}
317-
}
318-
#endif
316+
}
Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
using System;
2+
using System.Diagnostics;
23
using System.Runtime.InteropServices.ComTypes;
34
using Rubberduck.VBEditor.ComManagement.TypeLibs.Abstract;
5+
using Rubberduck.VBEditor.ComManagement.TypeLibs.DebugInternal;
6+
using Rubberduck.VBEditor.ComManagement.TypeLibs.Unmanaged;
47

58
// TODO The tracers are broken - using them will cause a NRE inside the
69
// unmanaged boundary. If we need to enable them for diagnostics, this needs
710
// to be fixed first.
8-
#if DEBUG && TRACE_TYPEAPI
9-
using Rubberduck.VBEditor.ComManagement.TypeLibs.DebugInternal;
10-
#endif
1111

1212
namespace Rubberduck.VBEditor.ComManagement.TypeLibs
1313
{
@@ -21,32 +21,37 @@ internal static class TypeApiFactory
2121
{
2222
internal static ITypeLibWrapper GetTypeLibWrapper(IntPtr rawObjectPtr, bool addRef)
2323
{
24-
var wrapper = new TypeLibWrapper(rawObjectPtr, addRef);
25-
#if DEBUG && TRACE_TYPEAPI
26-
return new TypeLibWrapperTracer(wrapper, wrapper);
27-
#else
24+
ITypeLibWrapper wrapper = new TypeLibWrapper(rawObjectPtr, addRef);
25+
TraceWrapper(ref wrapper);
2826
return wrapper;
29-
#endif
27+
}
28+
29+
[Conditional("DEBUG")]
30+
[Conditional("TRACE_TYPEAPI")]
31+
private static void TraceWrapper(ref ITypeLibWrapper wrapper)
32+
{
33+
wrapper = new TypeLibWrapperTracer(wrapper, (ITypeLibInternal)wrapper);
3034
}
3135

3236
internal static ITypeInfoWrapper GetTypeInfoWrapper(IntPtr rawObjectPtr, int? parentUserFormUniqueId = null)
3337
{
34-
var wrapper = new TypeInfoWrapper(rawObjectPtr, parentUserFormUniqueId);
35-
#if DEBUG && TRACE_TYPEAPI
36-
return new TypeInfoWrapperTracer(wrapper, wrapper);
37-
#else
38+
ITypeInfoWrapper wrapper = new TypeInfoWrapper(rawObjectPtr, parentUserFormUniqueId);
39+
TraceWrapper(ref wrapper);
3840
return wrapper;
39-
#endif
4041
}
4142

4243
internal static ITypeInfoWrapper GetTypeInfoWrapper(ITypeInfo rawTypeInfo)
4344
{
44-
var wrapper = new TypeInfoWrapper(rawTypeInfo);
45-
#if DEBUG && TRACE_TYPEAPI
46-
return new TypeInfoWrapperTracer(wrapper, wrapper);
47-
#else
45+
ITypeInfoWrapper wrapper = new TypeInfoWrapper(rawTypeInfo);
46+
TraceWrapper(ref wrapper);
4847
return wrapper;
49-
#endif
48+
}
49+
50+
[Conditional("DEBUG")]
51+
[Conditional("TRACE_TYPEAPI")]
52+
private static void TraceWrapper(ref ITypeInfoWrapper wrapper)
53+
{
54+
wrapper = new TypeInfoWrapperTracer(wrapper, (ITypeInfoInternal)wrapper);
5055
}
5156
}
5257
}

0 commit comments

Comments
 (0)