diff --git a/reactos/sdk/lib/atl/atlsimpstr.h b/reactos/sdk/lib/atl/atlsimpstr.h index 64d3c7d7db4..05e582fc6f8 100644 --- a/reactos/sdk/lib/atl/atlsimpstr.h +++ b/reactos/sdk/lib/atl/atlsimpstr.h @@ -162,9 +162,8 @@ public: int nLength = StringLength(pszSrc); CStringData* pData = pStringMgr->Allocate(nLength, sizeof(XCHAR)); if (pData == NULL) - { - throw; // ThrowMemoryException(); - } + ThrowMemoryException(); + Attach(pData); SetLength(nLength); CopyChars(m_pszData, nLength, pszSrc, nLength); @@ -176,12 +175,12 @@ public: _Inout_ IAtlStringMgr* pStringMgr) { if (pchSrc == NULL && nLength != 0) - throw; + ThrowInvalidArgException(); CStringData* pData = pStringMgr->Allocate(nLength, sizeof(XCHAR)); if (pData == NULL) { - throw; // ThrowMemoryException(); + ThrowMemoryException(); } Attach(pData); SetLength(nLength); @@ -615,6 +614,11 @@ private: AtlThrow(E_OUTOFMEMORY); } + static void ThrowInvalidArgException() + { + AtlThrow(E_INVALIDARG); + } + }; #ifdef UNICODE