diff --git a/include/sta/Units.hh b/include/sta/Units.hh index c9e5baa6..541a8162 100644 --- a/include/sta/Units.hh +++ b/include/sta/Units.hh @@ -16,13 +16,16 @@ #pragma once +#include + namespace sta { +using std::string; + class Unit { public: Unit(const char *suffix); - ~Unit(); Unit(float scale, const char *suffix, int digits); @@ -34,9 +37,9 @@ public: float scale() const { return scale_; } void setScale(float scale); const char *scaleAbbreviation() const; - const char *suffix() const { return suffix_; } + const char *suffix() const { return suffix_.c_str(); } // scale abbreviation + suffix - const char *scaledSuffix() const { return scaled_suffix_; } + const char *scaledSuffix() const { return scaled_suffix_.c_str(); } void setSuffix(const char *suffix); int digits() const { return digits_; } void setDigits(int digits); @@ -51,8 +54,8 @@ private: void setScaledSuffix(); float scale_; // multiplier from user units to internal units - const char *suffix_; // print suffix - const char *scaled_suffix_; + string suffix_; // print suffix + string scaled_suffix_; int digits_; // print digits (after decimal pt) }; diff --git a/liberty/Units.cc b/liberty/Units.cc index 9b24173c..4874c19b 100644 --- a/liberty/Units.cc +++ b/liberty/Units.cc @@ -29,8 +29,7 @@ using std::abs; Unit::Unit(const char *suffix) : scale_(1.0), - suffix_(stringCopy(suffix)), - scaled_suffix_(nullptr), + suffix_(suffix), digits_(3) { setScaledSuffix(); @@ -40,8 +39,7 @@ Unit::Unit(float scale, const char *suffix, int digits) : scale_(scale), - suffix_(stringCopy(suffix)), - scaled_suffix_(nullptr), + suffix_(suffix), digits_(digits) { setScaledSuffix(); @@ -50,24 +48,15 @@ Unit::Unit(float scale, void Unit::setScaledSuffix() { - stringDelete(scaled_suffix_); - scaled_suffix_ = stringPrint("%s%s", scaleAbbreviation(), suffix_); -} - -Unit::~Unit() -{ - stringDelete(suffix_); - stringDelete(scaled_suffix_); + scaled_suffix_ = scaleAbbreviation() + suffix_; } void Unit::operator=(const Unit &unit) { scale_ = unit.scale_; - stringDelete(suffix_); - suffix_ = stringCopy(unit.suffix_); - stringDelete(scaled_suffix_); - scaled_suffix_ = stringCopy(unit.scaled_suffix_); + suffix_ = unit.suffix_; + scaled_suffix_ = unit.scaled_suffix_; digits_ = unit.digits_; } @@ -116,8 +105,7 @@ Unit::scaleAbbreviation() const void Unit::setSuffix(const char *suffix) { - stringDelete(suffix_); - suffix_ = stringCopy(suffix); + suffix_ = suffix; setScaledSuffix(); }