Skip to content

Commit 3f52687

Browse files
committed
Units use std::string
Signed-off-by: James Cherry <[email protected]>
1 parent c831ff8 commit 3f52687

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

include/sta/Units.hh

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@
1616

1717
#pragma once
1818

19+
#include <string>
20+
1921
namespace sta {
2022

23+
using std::string;
24+
2125
class Unit
2226
{
2327
public:
2428
Unit(const char *suffix);
25-
~Unit();
2629
Unit(float scale,
2730
const char *suffix,
2831
int digits);
@@ -34,9 +37,9 @@ public:
3437
float scale() const { return scale_; }
3538
void setScale(float scale);
3639
const char *scaleAbbreviation() const;
37-
const char *suffix() const { return suffix_; }
40+
const char *suffix() const { return suffix_.c_str(); }
3841
// scale abbreviation + suffix
39-
const char *scaledSuffix() const { return scaled_suffix_; }
42+
const char *scaledSuffix() const { return scaled_suffix_.c_str(); }
4043
void setSuffix(const char *suffix);
4144
int digits() const { return digits_; }
4245
void setDigits(int digits);
@@ -51,8 +54,8 @@ private:
5154
void setScaledSuffix();
5255

5356
float scale_; // multiplier from user units to internal units
54-
const char *suffix_; // print suffix
55-
const char *scaled_suffix_;
57+
string suffix_; // print suffix
58+
string scaled_suffix_;
5659
int digits_; // print digits (after decimal pt)
5760
};
5861

liberty/Units.cc

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ using std::abs;
2929

3030
Unit::Unit(const char *suffix) :
3131
scale_(1.0),
32-
suffix_(stringCopy(suffix)),
33-
scaled_suffix_(nullptr),
32+
suffix_(suffix),
3433
digits_(3)
3534
{
3635
setScaledSuffix();
@@ -40,8 +39,7 @@ Unit::Unit(float scale,
4039
const char *suffix,
4140
int digits) :
4241
scale_(scale),
43-
suffix_(stringCopy(suffix)),
44-
scaled_suffix_(nullptr),
42+
suffix_(suffix),
4543
digits_(digits)
4644
{
4745
setScaledSuffix();
@@ -50,24 +48,15 @@ Unit::Unit(float scale,
5048
void
5149
Unit::setScaledSuffix()
5250
{
53-
stringDelete(scaled_suffix_);
54-
scaled_suffix_ = stringPrint("%s%s", scaleAbbreviation(), suffix_);
55-
}
56-
57-
Unit::~Unit()
58-
{
59-
stringDelete(suffix_);
60-
stringDelete(scaled_suffix_);
51+
scaled_suffix_ = scaleAbbreviation() + suffix_;
6152
}
6253

6354
void
6455
Unit::operator=(const Unit &unit)
6556
{
6657
scale_ = unit.scale_;
67-
stringDelete(suffix_);
68-
suffix_ = stringCopy(unit.suffix_);
69-
stringDelete(scaled_suffix_);
70-
scaled_suffix_ = stringCopy(unit.scaled_suffix_);
58+
suffix_ = unit.suffix_;
59+
scaled_suffix_ = unit.scaled_suffix_;
7160
digits_ = unit.digits_;
7261
}
7362

@@ -116,8 +105,7 @@ Unit::scaleAbbreviation() const
116105
void
117106
Unit::setSuffix(const char *suffix)
118107
{
119-
stringDelete(suffix_);
120-
suffix_ = stringCopy(suffix);
108+
suffix_ = suffix;
121109
setScaledSuffix();
122110
}
123111

0 commit comments

Comments
 (0)