Skip to content

Commit dc7beaf

Browse files
committed
---
yaml --- r: 3841 b: refs/heads/master c: 0be1a0b h: refs/heads/master i: 3839: 6e467bf v: v3
1 parent 7ef22da commit dc7beaf

File tree

2 files changed

+5
-18
lines changed

2 files changed

+5
-18
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 4b23ea51bcdf93d981b25510d92e62e0e3fc10ed
2+
refs/heads/master: 0be1a0b500b1519a3ee7c4c92f96b4a3914b3858

trunk/src/comp/middle/tstate/tritv.rs

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -186,24 +186,11 @@ fn tritv_set(uint i, &t v, trit t) -> bool {
186186
}
187187

188188
fn tritv_copy(&t target, &t source) -> bool {
189-
let uint i = 0u;
190189
assert (target.nbits == source.nbits);
191-
auto changed = false;
192-
auto oldunc;
193-
auto newunc;
194-
auto oldval;
195-
auto newval;
196-
while (i < target.nbits) {
197-
oldunc = bitv::get(target.uncertain, i);
198-
newunc = bitv::get(source.uncertain, i);
199-
oldval = bitv::get(target.val, i);
200-
newval = bitv::get(source.val, i);
201-
bitv::set(target.uncertain, i, newunc);
202-
changed = changed || (oldunc && !newunc);
203-
bitv::set(target.val, i, newval);
204-
changed = changed || (oldval && !newval);
205-
i += 1u;
206-
}
190+
auto changed = !bitv::equal(target.uncertain, source.uncertain) ||
191+
!bitv::equal(target.val, source.val);
192+
bitv::copy(target.uncertain, source.uncertain);
193+
bitv::copy(target.val, source.val);
207194
ret changed;
208195
}
209196

0 commit comments

Comments
 (0)