2008-05-28-serialize.cpp.patch
2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Index: src/serialize.cpp
===================================================================
--- src/serialize.cpp (revision 1746)
+++ src/serialize.cpp (working copy)
@@ -229,7 +229,7 @@
{
/* a small one */
check_serial(9); /* sign + two words */
- put_serial_8(x&2); /* sign bit: 0 = positive, 1 = negative */
+ put_serial_8(!!(x&2)); /* sign bit: 0 = positive, 1 = negative */
put_serial_32(1); /* number of bigits: 1 bigit */
put_serial_32(x >> 2); /* the bigit */
}
@@ -241,7 +241,7 @@
U32 i = 0;
check_serial(1+(4*(nb+1)));
- put_serial_8(x&2); /* sign bit */
+ put_serial_8(!!(x&2)); /* sign bit */
put_serial_32(nb); /* put number of bigits */
for (i = 2; i < (nb+2); i++) /* put the bigits */
put_serial_32(seg[i]);
@@ -271,7 +271,7 @@
U32 i = 0;
check_serial(1+(4*(nb+1)));
- put_serial_8(x&2); /* sign bit */
+ put_serial_8(!!(x&2)); /* sign bit */
put_serial_32(nb); /* put number of bigits */
for (i = 2; i < (nb+2); i++) /* put the bigits */
put_serial_32(seg[i]);
@@ -1181,7 +1181,7 @@
peek_serial_32(bigit); /* get the bigit (no side effect) */
if (bigit < 0x40000000) /* if small Int */
{
- MAM(m_R) = (bigit<<2)|(sign<<1)|1; /* make a small Nat */
+ MAM(m_R) = (bigit<<2)|((sign&1)<<1)|1; /* make a small Nat */
MAM(m_serial_next) += 4; /* skip the bigit */
}
else
@@ -1214,7 +1214,7 @@
((U32 *)(MAM(m_R)))[1] = nb; /* store nb */
for (i = 2; i < (nb+2); i++) /* store the bigits */
get_serial_32(((U32 *)(MAM(m_R)))[i]);
- MAM(m_R) |= (sign<<1); /* put sign bit */
+ MAM(m_R) |= ((sign&1)<<1); /* put sign bit */
}
}
}
@@ -1267,7 +1267,7 @@
peek_serial_32(bigit); /* get the bigit (no side effect) */
if (bigit < 0x40000000) /* if small Int */
{
- *((U32 *)(*(MAM(m_SP)-1))) = (bigit<<2)|(sign<<1)|1; /* make a small Int */
+ *((U32 *)(*(MAM(m_SP)-1))) = (bigit<<2)|((sign&1)<<1)|1; /* make a small Int */
*(MAM(m_SP)-1) += 4;
MAM(m_serial_next) += 4; /* skip the bigit */
}
@@ -1303,7 +1303,7 @@
((U32 *)(seg))[1] = nb; /* store nb */
for (i = 2; i < (nb+2); i++) /* store the bigits */
get_serial_32(((U32 *)(seg))[i]);
- *((U32 *)(*(MAM(m_SP)-1))) = seg | (sign<<1);
+ *((U32 *)(*(MAM(m_SP)-1))) = seg | ((sign&1)<<1);
*(MAM(m_SP)-1) += 4;
}
}