mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-21 05:43:10 -07:00
Reducing the number of wstring copies when constructing Unit and Category (#936)
This commit is contained in:
parent
18a1f82035
commit
0490d8cd20
1 changed files with 15 additions and 12 deletions
|
@ -6,8 +6,8 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <future>
|
#include <future>
|
||||||
#include "sal_cross_platform.h" // for SAL
|
#include "sal_cross_platform.h" // for SAL
|
||||||
#include <memory> // for std::shared_ptr
|
#include <memory> // for std::shared_ptr
|
||||||
|
|
||||||
namespace UnitConversionManager
|
namespace UnitConversionManager
|
||||||
{
|
{
|
||||||
|
@ -18,11 +18,11 @@ namespace UnitConversionManager
|
||||||
Unit()
|
Unit()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
Unit(int id, std::wstring name, std::wstring abbreviation, bool isConversionSource, bool isConversionTarget, bool isWhimsical)
|
Unit(int id, std::wstring_view name, std::wstring abbreviation, bool isConversionSource, bool isConversionTarget, bool isWhimsical)
|
||||||
: id(id)
|
: id(id)
|
||||||
, name(name)
|
, name(name)
|
||||||
, accessibleName(name)
|
, accessibleName(name)
|
||||||
, abbreviation(abbreviation)
|
, abbreviation(std::move(abbreviation))
|
||||||
, isConversionSource(isConversionSource)
|
, isConversionSource(isConversionSource)
|
||||||
, isConversionTarget(isConversionTarget)
|
, isConversionTarget(isConversionTarget)
|
||||||
, isWhimsical(isWhimsical)
|
, isWhimsical(isWhimsical)
|
||||||
|
@ -31,23 +31,26 @@ namespace UnitConversionManager
|
||||||
|
|
||||||
Unit(
|
Unit(
|
||||||
int id,
|
int id,
|
||||||
std::wstring currencyName,
|
std::wstring_view currencyName,
|
||||||
std::wstring countryName,
|
std::wstring_view countryName,
|
||||||
std::wstring abbreviation,
|
std::wstring abbreviation,
|
||||||
bool isRtlLanguage,
|
bool isRtlLanguage,
|
||||||
bool isConversionSource,
|
bool isConversionSource,
|
||||||
bool isConversionTarget)
|
bool isConversionTarget)
|
||||||
: id(id)
|
: id(id)
|
||||||
, abbreviation(abbreviation)
|
, abbreviation(std::move(abbreviation))
|
||||||
, isConversionSource(isConversionSource)
|
, isConversionSource(isConversionSource)
|
||||||
, isConversionTarget(isConversionTarget)
|
, isConversionTarget(isConversionTarget)
|
||||||
, isWhimsical(false)
|
, isWhimsical(false)
|
||||||
{
|
{
|
||||||
std::wstring nameValue1 = isRtlLanguage ? currencyName : countryName;
|
auto nameValue1 = isRtlLanguage ? currencyName : countryName;
|
||||||
std::wstring nameValue2 = isRtlLanguage ? countryName : currencyName;
|
auto nameValue2 = isRtlLanguage ? countryName : currencyName;
|
||||||
|
|
||||||
name = nameValue1 + L" - " + nameValue2;
|
name = nameValue1;
|
||||||
accessibleName = nameValue1 + L" " + nameValue2;
|
name.append(L" - ").append(nameValue2);
|
||||||
|
|
||||||
|
accessibleName = nameValue1;
|
||||||
|
accessibleName.append(1, L' ').append(nameValue2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int id;
|
int id;
|
||||||
|
@ -84,7 +87,7 @@ namespace UnitConversionManager
|
||||||
|
|
||||||
Category(int id, std::wstring name, bool supportsNegative)
|
Category(int id, std::wstring name, bool supportsNegative)
|
||||||
: id(id)
|
: id(id)
|
||||||
, name(name)
|
, name(std::move(name))
|
||||||
, supportsNegative(supportsNegative)
|
, supportsNegative(supportsNegative)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue