From: Hugo van der Merwe <17109322+hugovdm@users.noreply.github.com> Date: Tue, 14 Apr 2020 15:10:56 +0000 (+0200) Subject: Change outVector from reference to pointer for clarity of lack of ownership. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b76ef3b51cd73862b923a3295e081fc9669b052;p=icu Change outVector from reference to pointer for clarity of lack of ownership. --- diff --git a/icu4c/source/i18n/unitsdata.cpp b/icu4c/source/i18n/unitsdata.cpp index 6bebed26400..3e285b65bd6 100644 --- a/icu4c/source/i18n/unitsdata.cpp +++ b/icu4c/source/i18n/unitsdata.cpp @@ -35,9 +35,9 @@ class ConversionRateDataSink : public ResourceSink { /** * Constructor. * @param out The vector to which ConversionRateInfo instances are to be - * added. + * added. This vector must outlive the use of the ResourceSink. */ - explicit ConversionRateDataSink(MaybeStackVector &out) : outVector(out) {} + explicit ConversionRateDataSink(MaybeStackVector *out) : outVector(out) {} /** * Adds the conversion rate information found in value to the output vector. @@ -84,7 +84,7 @@ class ConversionRateDataSink : public ResourceSink { } // We don't have this ConversionRateInfo yet: add it. - ConversionRateInfo *cr = outVector.emplaceBack(); + ConversionRateInfo *cr = outVector->emplaceBack(); if (!cr) { status = U_MEMORY_ALLOCATION_ERROR; return; @@ -99,7 +99,7 @@ class ConversionRateDataSink : public ResourceSink { } private: - MaybeStackVector &outVector; + MaybeStackVector *outVector; }; } // namespace @@ -107,7 +107,7 @@ class ConversionRateDataSink : public ResourceSink { MaybeStackVector U_I18N_API getAllConversionRates(UErrorCode &status) { MaybeStackVector result; LocalUResourceBundlePointer unitsBundle(ures_openDirect(NULL, "units", &status)); - ConversionRateDataSink sink(result); + ConversionRateDataSink sink(&result); ures_getAllItemsWithFallback(unitsBundle.getAlias(), "convertUnits", sink, status); return result; }