aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authordaniel <danieljoonlee@gmail.com>2018-05-01 13:58:04 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2018-05-04 06:11:34 +0800
commitaa1542a9e12177311e7d426b7606823ae45ee88e (patch)
tree1f5775b95f3bcc3a4d05d01e5ab8a2d2ffd91cc2 /libsolidity
parentb34428249a24c29e17de8636c2d3011d95d052cc (diff)
downloaddexon-solidity-aa1542a9e12177311e7d426b7606823ae45ee88e.tar.gz
dexon-solidity-aa1542a9e12177311e7d426b7606823ae45ee88e.tar.zst
dexon-solidity-aa1542a9e12177311e7d426b7606823ae45ee88e.zip
Change bytes to unsigned in FixedBytesType
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/ast/Types.cpp5
-rw-r--r--libsolidity/ast/Types.h6
-rw-r--r--libsolidity/codegen/CompilerUtils.cpp4
3 files changed, 7 insertions, 8 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp
index f41a4a37..dc548538 100644
--- a/libsolidity/ast/Types.cpp
+++ b/libsolidity/ast/Types.cpp
@@ -599,8 +599,7 @@ FixedPointType::FixedPointType(unsigned _totalBits, unsigned _fractionalDigits,
m_totalBits(_totalBits), m_fractionalDigits(_fractionalDigits), m_modifier(_modifier)
{
solAssert(
- 8 <= m_totalBits && m_totalBits <= 256 && m_totalBits % 8 == 0 &&
- 0 <= m_fractionalDigits && m_fractionalDigits <= 80,
+ 8 <= m_totalBits && m_totalBits <= 256 && m_totalBits % 8 == 0 && m_fractionalDigits <= 80,
"Invalid bit number(s) for fixed type: " +
dev::toString(_totalBits) + "x" + dev::toString(_fractionalDigits)
);
@@ -1264,7 +1263,7 @@ bool StringLiteralType::isValidUTF8() const
return dev::validateUTF8(m_value);
}
-FixedBytesType::FixedBytesType(int _bytes): m_bytes(_bytes)
+FixedBytesType::FixedBytesType(unsigned _bytes): m_bytes(_bytes)
{
solAssert(
m_bytes > 0 && m_bytes <= 32,
diff --git a/libsolidity/ast/Types.h b/libsolidity/ast/Types.h
index d39c395a..6defacfc 100644
--- a/libsolidity/ast/Types.h
+++ b/libsolidity/ast/Types.h
@@ -506,7 +506,7 @@ class FixedBytesType: public Type
public:
virtual Category category() const override { return Category::FixedBytes; }
- explicit FixedBytesType(int _bytes);
+ explicit FixedBytesType(unsigned _bytes);
virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override;
virtual bool isExplicitlyConvertibleTo(Type const& _convertTo) const override;
@@ -524,10 +524,10 @@ public:
virtual TypePointer encodingType() const override { return shared_from_this(); }
virtual TypePointer interfaceType(bool) const override { return shared_from_this(); }
- int numBytes() const { return m_bytes; }
+ unsigned numBytes() const { return m_bytes; }
private:
- int m_bytes;
+ unsigned m_bytes;
};
/**
diff --git a/libsolidity/codegen/CompilerUtils.cpp b/libsolidity/codegen/CompilerUtils.cpp
index 48b77eb3..fc1ff0eb 100644
--- a/libsolidity/codegen/CompilerUtils.cpp
+++ b/libsolidity/codegen/CompilerUtils.cpp
@@ -688,7 +688,7 @@ void CompilerUtils::convertType(
m_context << Instruction::POP << u256(0);
else if (targetType.numBytes() > typeOnStack.numBytes() || _cleanupNeeded)
{
- int bytes = min(typeOnStack.numBytes(), targetType.numBytes());
+ unsigned bytes = min(typeOnStack.numBytes(), targetType.numBytes());
m_context << ((u256(1) << (256 - bytes * 8)) - 1);
m_context << Instruction::NOT << Instruction::AND;
}
@@ -796,7 +796,7 @@ void CompilerUtils::convertType(
bytesConstRef data(value);
if (targetTypeCategory == Type::Category::FixedBytes)
{
- int const numBytes = dynamic_cast<FixedBytesType const&>(_targetType).numBytes();
+ unsigned const numBytes = dynamic_cast<FixedBytesType const&>(_targetType).numBytes();
solAssert(data.size() <= 32, "");
m_context << (h256::Arith(h256(data, h256::AlignLeft)) & (~(u256(-1) >> (8 * numBytes))));
}