[poincare] Units: change signature of serialize to follow same

conventions as Expression::serialize
This commit is contained in:
Émilie Feral
2020-01-20 12:06:05 +01:00
committed by Léa Saviot
parent 3428e0aa6f
commit bf73b69808
2 changed files with 10 additions and 8 deletions

View File

@@ -30,7 +30,7 @@ public:
{}
const char * symbol() const { return m_symbol; }
const int8_t exponent() const { return m_exponent; }
size_t serialize(char * buffer, size_t length) const;
int serialize(char * buffer, int bufferSize) const;
private:
const char * m_symbol;
int8_t m_exponent;
@@ -51,7 +51,7 @@ public:
const Prefix * allowedPrefixesUpperBound() const { return m_allowedPrefixesUpperBound; }
bool canParse(const char * symbol, size_t length,
const Prefix * * prefix) const;
size_t serialize(char * buffer, size_t length, const Prefix * prefix) const;
int serialize(char * buffer, int bufferSize, const Prefix * prefix) const;
private:
const char * m_rootSymbol;
const char * m_definition;

View File

@@ -10,8 +10,9 @@ namespace Poincare {
static inline int minInt(int x, int y) { return x < y ? x : y; }
size_t UnitNode::Prefix::serialize(char * buffer, size_t length) const {
return minInt(strlcpy(buffer, m_symbol, length), length - 1);
int UnitNode::Prefix::serialize(char * buffer, int bufferSize) const {
assert(bufferSize >= 0);
return minInt(strlcpy(buffer, m_symbol, bufferSize), bufferSize - 1);
}
bool UnitNode::Representative::canParse(const char * symbol, size_t length,
@@ -31,11 +32,12 @@ bool UnitNode::Representative::canParse(const char * symbol, size_t length,
return false;
}
size_t UnitNode::Representative::serialize(char * buffer, size_t length, const Prefix * prefix) const {
size_t prefixLength = prefix->serialize(buffer, length);
int UnitNode::Representative::serialize(char * buffer, int bufferSize, const Prefix * prefix) const {
int prefixLength = prefix->serialize(buffer, bufferSize);
assert(prefixLength < bufferSize);
buffer += prefixLength;
length -= prefixLength;
return prefixLength + minInt(strlcpy(buffer, m_rootSymbol, length), length - 1);
bufferSize -= prefixLength;
return prefixLength + minInt(strlcpy(buffer, m_rootSymbol, bufferSize), bufferSize - 1);
}
bool UnitNode::Dimension::canParse(const char * symbol, size_t length,