diff --git a/icu4c/source/i18n/numrange_fluent.cpp b/icu4c/source/i18n/numrange_fluent.cpp index e03701788ca8..2624eea4f625 100644 --- a/icu4c/source/i18n/numrange_fluent.cpp +++ b/icu4c/source/i18n/numrange_fluent.cpp @@ -313,9 +313,8 @@ FormattedNumberRange LocalizedNumberRangeFormatter::formatFormattableRange( return FormattedNumberRange(U_ILLEGAL_ARGUMENT_ERROR); } - auto* results = new UFormattedNumberRangeData(); - if (results == nullptr) { - status = U_MEMORY_ALLOCATION_ERROR; + LocalPointer results(new UFormattedNumberRangeData(), status); + if (U_FAILURE(status)) { return FormattedNumberRange(status); } @@ -333,9 +332,8 @@ FormattedNumberRange LocalizedNumberRangeFormatter::formatFormattableRange( // Do not save the results object if we encountered a failure. if (U_SUCCESS(status)) { - return FormattedNumberRange(results); + return FormattedNumberRange(results.orphan()); } else { - delete results; return FormattedNumberRange(status); } }