ClearLastResult();
result r = E_SUCCESS;
- std::unique_ptr<LinkedList, AllElementsDeleter> pList(new (std::nothrow) LinkedList());
+ std::unique_ptr< LinkedList > pList(new (std::nothrow) LinkedList(SingleObjectDeleter));
SysTryReturn(NID_TEXT, pList != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed", GetErrorMessage(E_OUT_OF_MEMORY));
for (int i = 0; i < AVAILABLE_ENCODING_COUNT; i++)
{
- String* pEncodingStr = new (std::nothrow) String(availableEncodings[i]);
+ std::unique_ptr< String > pEncodingStr(new (std::nothrow) String(availableEncodings[i]));
SysTryReturn(NID_TEXT, pEncodingStr, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed", GetErrorMessage(E_OUT_OF_MEMORY));
- r = pList->Add(*pEncodingStr);
- if(IsFailed(r))
- {
- delete pEncodingStr;
- SysTryReturn(NID_TEXT, !IsFailed(r), null, r, "[%s] Unable to add encoding to list", GetErrorMessage(r));
- }
+ r = pList->Add(*(pEncodingStr.get()));
+ SysTryReturn(NID_TEXT, !IsFailed(r), null, r, "[%s] Unable to add encoding to list", GetErrorMessage(r));
+ pEncodingStr.release();
}
return pList.release();