--- otp_src_P9_2002-10-07/lib/erl_interface/src/erl_marshal.c Wed Oct 2 23:17:23 2002 +++ otp_src_P9_2002-10-07.fixed/lib/erl_interface/src/erl_marshal.c Wed Oct 9 11:28:55 2002 @@ -1491,7 +1491,7 @@ case ERL_SMALL_TUPLE_EXT: i = *(*e1)++; j = *(*e2)++; if (i < j) return -1; - if (j > j ) return 1; + if (i > j ) return 1; while (i--) { if ((j = compare_top_ext(e1, e2))) return j; } @@ -1502,7 +1502,7 @@ j = (**e2 << 24) | ((*e2)[1]) << 16| ((*e2)[2]) << 8| ((*e2)[3]) ; *e2 += 4; if (i < j) return -1; - if (j > j ) return 1; + if (i > j ) return 1; while (i--) { if ((j = compare_top_ext(e1, e2))) return j; } @@ -1587,6 +1587,9 @@ ei_free_big(b1); ei_free_big(b2); + *e1 += i1; + *e2 += i2; + return res; } @@ -1604,6 +1607,9 @@ f1 = l1; + *e1 += i1; + *e2 += i2; + return cmp_floats(f1,f2); } @@ -1634,6 +1640,9 @@ ei_free_big(b2); + *e1 += i1; + *e2 += i2; + return cmp_floats(f1,f2); } @@ -1652,6 +1661,9 @@ return 1; } + *e1 += i1; + *e2 += i2; + if ( l1 < l2 ) return -1; else if ( l1 > l2 ) return 1; else return 0; @@ -1666,6 +1678,9 @@ if ( ei_decode_double(*e1,&i1,&f1) < 0 ) return -1; if ( ei_decode_double(*e2,&i2,&f2) < 0 ) return 1; + *e1 += i1; + *e2 += i2; + return cmp_floats(f1,f2); } @@ -1692,6 +1707,9 @@ ei_free_big(b1); ei_free_big(b2); + *e1 += i1; + *e2 += i2; + return res; }