#include <exception>
#include <stdexcept>
+#include <releaseholder.h>
+
#include "profiler.h"
#include "classstorage.h"
-#include "default_delete.h"
#include "classinfo.h"
// static
try
{
- IUnknown *pUnknown;
+ ReleaseHolder<IMetaDataImport> pMDImport;
hr = info.v1()->GetModuleMetaData(
- this->moduleId, ofRead, IID_IMetaDataImport, &pUnknown);
+ this->moduleId, ofRead, IID_IMetaDataImport,
+ reinterpret_cast<IUnknown**>(&pMDImport));
if (FAILED(hr))
{
throw HresultException(
"GetModuleMetaData()", hr
);
}
- std::unique_ptr<IUnknown> pUnknownHolder(pUnknown);
- IMetaDataImport *pMDImport = dynamic_cast<IMetaDataImport*>(pUnknown);
ULONG32 typeArgsSize = 0;
hr = ClassInfo::GetClassNameFromMetaData(
#include <exception>
#include <stdexcept>
-//#include <corhlpr.h>
+#include <releaseholder.h>
#include "profiler.h"
#include "classstorage.h"
#include "classinfo.h"
-#include "default_delete.h"
#include "functioninfo.h"
inline bool isCallConv(unsigned sigByte, CorCallingConvention conv)
);
}
- IUnknown *pUnknown;
+ ReleaseHolder<IMetaDataImport> pMDImport;
hr = info.v1()->GetModuleMetaData(
- this->moduleId, ofRead, IID_IMetaDataImport, &pUnknown);
+ this->moduleId, ofRead, IID_IMetaDataImport,
+ reinterpret_cast<IUnknown**>(&pMDImport));
if (FAILED(hr))
{
throw HresultException(
"FunctionInfo::Initialize(): GetModuleMetaData()", hr);
}
- std::unique_ptr<IUnknown> pUnknownHolder(pUnknown);
- IMetaDataImport *pMDImport = dynamic_cast<IMetaDataImport*>(pUnknown);
ULONG funcNameSize;
mdTypeDef classToken;
+++ /dev/null
-/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <utility>
-
-#include <cor.h>
-
-namespace std
-{
- template<>
- struct default_delete<IUnknown> {
- void operator()(IUnknown* pUnknown)
- {
- pUnknown->Release();
- }
- };
-}