/**
* 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<ConversionRateInfo> &out) : outVector(out) {}
+ explicit ConversionRateDataSink(MaybeStackVector<ConversionRateInfo> *out) : outVector(out) {}
/**
* Adds the conversion rate information found in value to the output vector.
}
// 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;
}
private:
- MaybeStackVector<ConversionRateInfo> &outVector;
+ MaybeStackVector<ConversionRateInfo> *outVector;
};
} // namespace
MaybeStackVector<ConversionRateInfo> U_I18N_API getAllConversionRates(UErrorCode &status) {
MaybeStackVector<ConversionRateInfo> result;
LocalUResourceBundlePointer unitsBundle(ures_openDirect(NULL, "units", &status));
- ConversionRateDataSink sink(result);
+ ConversionRateDataSink sink(&result);
ures_getAllItemsWithFallback(unitsBundle.getAlias(), "convertUnits", sink, status);
return result;
}