diff options
author | Mike Buland <mike@xagasoft.com> | 2013-04-16 13:57:57 -0600 |
---|---|---|
committer | Mike Buland <mike@xagasoft.com> | 2013-04-16 13:57:57 -0600 |
commit | 7bb55b03c393b5d00914d328a16d238d17f6aa0f (patch) | |
tree | 4d9a0547b105e1867f8118f2f00548e1e05589ad /src/packedintarray.cpp | |
parent | 25989c6d3911b1d29a5866e668bff52537893afb (diff) | |
download | clic-7bb55b03c393b5d00914d328a16d238d17f6aa0f.tar.gz clic-7bb55b03c393b5d00914d328a16d238d17f6aa0f.tar.bz2 clic-7bb55b03c393b5d00914d328a16d238d17f6aa0f.tar.xz clic-7bb55b03c393b5d00914d328a16d238d17f6aa0f.zip |
Added /, %, and = operators.
Division now works just fine, but by long division. There are
apparently much faster ways of doing division, but as long as it works I
feel like that's a great start :)
Diffstat (limited to '')
-rw-r--r-- | src/packedintarray.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/packedintarray.cpp b/src/packedintarray.cpp index 7c54063..0e137bf 100644 --- a/src/packedintarray.cpp +++ b/src/packedintarray.cpp | |||
@@ -127,6 +127,26 @@ void PackedIntArray::set( const PackedIntArray &rSrc, int iStart, int iSize ) | |||
127 | } | 127 | } |
128 | } | 128 | } |
129 | 129 | ||
130 | void PackedIntArray::set( const PackedIntArray &rSrc ) | ||
131 | { | ||
132 | delete[] aData; | ||
133 | |||
134 | iBitWidth = rSrc.iBitWidth; | ||
135 | iCapacity = rSrc.iCapacity; | ||
136 | iCount = rSrc.iCount; | ||
137 | uMask = rSrc.uMask; | ||
138 | |||
139 | int iSize = StoreCount(iCapacity); | ||
140 | aData = new Store[iSize]; | ||
141 | memcpy( aData, rSrc.aData, iSize*sizeof(Store) ); | ||
142 | } | ||
143 | |||
144 | void PackedIntArray::trim() | ||
145 | { | ||
146 | while( iCount > 0 && get( iCount-1 ) == 0 ) | ||
147 | iCount--; | ||
148 | } | ||
149 | |||
130 | Bu::String PackedIntArray::toBitString() const | 150 | Bu::String PackedIntArray::toBitString() const |
131 | { | 151 | { |
132 | Bu::String sRet; | 152 | Bu::String sRet; |