diff options
author | lloyd <[email protected]> | 2007-03-03 05:48:54 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2007-03-03 05:48:54 +0000 |
commit | 2e08f75d02c3b08e6d8c983bae963f5709aa8311 (patch) | |
tree | c0a28d9f95e305db0a994caa5bb6ad13649903a7 /src | |
parent | eb8b4aa9c0fa9e57f3c2446478714d596d873592 (diff) |
BigInt::operator[] now guards against accesses that are larger than the
current register size; reads return 0, writes extend the buffer.
Diffstat (limited to 'src')
-rw-r--r-- | src/big_base.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/big_base.cpp b/src/big_base.cpp index 158d967fb..a6d9e3e9e 100644 --- a/src/big_base.cpp +++ b/src/big_base.cpp @@ -338,6 +338,23 @@ BigInt BigInt::operator-() const } /************************************************* +* Return a reference to the indexed word * +*************************************************/ +word& BigInt::operator[](u32bit index) + { + reg.grow_to(index+1); + return reg[index]; + } + +/************************************************* +* Return the value of the indexed word * +*************************************************/ +word BigInt::operator[](u32bit index) const + { + return (index < size()) ? reg[index] : 0; + } + +/************************************************* * Return the absolute value of this number * *************************************************/ BigInt BigInt::abs() const |