@@ -66,7 +66,7 @@ typedef int (__cdecl *UnicodeStringCompareFuncPtr)(const WCHAR *, const WCHAR *)
66
66
// --------------------------------------------------------------------------------
67
67
// The DispatchMemberInfo class implementation.
68
68
69
- DispatchMemberInfo::DispatchMemberInfo (DispatchInfo *pDispInfo, DISPID DispID, SString& strName, OBJECTREF MemberInfoObj )
69
+ DispatchMemberInfo::DispatchMemberInfo (DispatchInfo *pDispInfo, DISPID DispID, SString& strName)
70
70
: m_DispID(DispID)
71
71
, m_hndMemberInfo(NULL )
72
72
, m_apParamMarshaler(NULL )
@@ -82,7 +82,7 @@ DispatchMemberInfo::DispatchMemberInfo(DispatchInfo *pDispInfo, DISPID DispID, S
82
82
, m_pDispInfo(pDispInfo)
83
83
, m_bLastParamOleVarArg(FALSE )
84
84
{
85
- WRAPPER_NO_CONTRACT; // Calls to CreateHandle, above, means not a leaf contract
85
+ WRAPPER_NO_CONTRACT;
86
86
}
87
87
88
88
void DispatchMemberInfo::Neuter ()
@@ -137,6 +137,9 @@ DispatchMemberInfo::~DispatchMemberInfo()
137
137
if (m_pParamInOnly)
138
138
delete [] m_pParamInOnly;
139
139
140
+ if (m_hndMemberInfo)
141
+ m_pDispInfo->GetLoaderAllocator ()->FreeHandle (m_hndMemberInfo);
142
+
140
143
// Clear the name of the member.
141
144
m_strName.Clear ();
142
145
}
@@ -335,6 +338,11 @@ PTRARRAYREF DispatchMemberInfo::GetParameters()
335
338
return ParamArray;
336
339
}
337
340
341
+ OBJECTREF DispatchMemberInfo::GetMemberInfoObject ()
342
+ {
343
+ return m_pDispInfo->GetLoaderAllocator ()->GetHandleValue (m_hndMemberInfo);
344
+ }
345
+
338
346
void DispatchMemberInfo::MarshalParamNativeToManaged (int iParam, VARIANT *pSrcVar, OBJECTREF *pDestObj)
339
347
{
340
348
CONTRACTL
@@ -1013,19 +1021,6 @@ void DispatchMemberInfo::SetUpDispParamAttributes(int iParam, MarshalInfo* Info)
1013
1021
m_pParamInOnly[iParam] = ( Info->IsIn () && !Info->IsOut () );
1014
1022
}
1015
1023
1016
- #ifndef DACCESS_COMPILE
1017
- OBJECTREF DispatchMemberInfo::GetMemberInfoObject ()
1018
- {
1019
- return m_pDispInfo->GetLoaderAllocator ()->GetHandleValue (m_hndMemberInfo);
1020
- }
1021
-
1022
- void DispatchMemberInfo::ClearMemberInfoObject ()
1023
- {
1024
- m_pDispInfo->GetLoaderAllocator ()->SetHandleValue (m_hndMemberInfo, NULL );
1025
- }
1026
- #endif // DACCESS_COMPILE
1027
-
1028
-
1029
1024
// --------------------------------------------------------------------------------
1030
1025
// The DispatchInfo class implementation.
1031
1026
@@ -1162,7 +1157,7 @@ DispatchMemberInfo* DispatchInfo::CreateDispatchMemberInfoInstance(DISPID DispID
1162
1157
}
1163
1158
CONTRACT_END;
1164
1159
1165
- DispatchMemberInfo* pInfo = new DispatchMemberInfo (this , DispID, strMemberName, MemberInfoObj );
1160
+ DispatchMemberInfo* pInfo = new DispatchMemberInfo (this , DispID, strMemberName);
1166
1161
pInfo->SetHandle (GetLoaderAllocator ()->AllocateHandle (MemberInfoObj));
1167
1162
1168
1163
RETURN pInfo;
@@ -3291,8 +3286,7 @@ DispatchMemberInfo* DispatchExInfo::CreateDispatchMemberInfoInstance(DISPID Disp
3291
3286
}
3292
3287
CONTRACT_END;
3293
3288
3294
- DispatchMemberInfo* pInfo = new DispatchMemberInfo (this , DispID, strMemberName, MemberInfoObj);
3295
-
3289
+ DispatchMemberInfo* pInfo = new DispatchMemberInfo (this , DispID, strMemberName);
3296
3290
pInfo->SetHandle (GetLoaderAllocator ()->AllocateHandle (MemberInfoObj));
3297
3291
3298
3292
RETURN pInfo;
0 commit comments