@@ -133,9 +133,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemBufferCreate(
133133
134134 auto URMemObj = std::unique_ptr<ur_mem_handle_t_>(
135135 new ur_mem_handle_t_{hContext, flags, AllocMode, HostPtr, size});
136- if (URMemObj == nullptr ) {
137- throw UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
138- }
139136
140137 // First allocation will be made at urMemBufferCreate if context only
141138 // has one device
@@ -157,6 +154,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemBufferCreate(
157154 RetMemObj = URMemObj.release ();
158155 } catch (ur_result_t Err) {
159156 Result = Err;
157+ } catch (std::bad_alloc &Err) {
158+ return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
160159 } catch (...) {
161160 Result = UR_RESULT_ERROR_OUT_OF_RESOURCES;
162161 }
@@ -384,10 +383,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemImageCreate(
384383 auto URMemObj = std::unique_ptr<ur_mem_handle_t_>(new ur_mem_handle_t_{
385384 hContext, flags, *pImageFormat, *pImageDesc, pHost});
386385
387- if (URMemObj == nullptr ) {
388- return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
389- }
390-
391386 if (PerformInitialCopy) {
392387 for (const auto &Dev : hContext->getDevices ()) {
393388 ScopedContext Active (Dev);
0 commit comments