? build ? dist ? structPatch.diff Index: org/python/modules/struct.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/struct.java,v retrieving revision 2.6 diff -r2.6 struct.java 638a639,735 > static class LEUnsignedLongFormatDef extends FormatDef > { > void pack( ByteStream buf, PyObject value ) > { > long lvalue = get_ulong( value ); > if (lvalue<0) { > throw StructError("can't convert negative long to unsigned"); > } > int high = (int) ( (lvalue & 0xFFFFFFFF00000000L)>>32 ); > int low = (int) ( lvalue & 0x00000000FFFFFFFFL ); > LEwriteInt( buf, low ); > LEwriteInt( buf, high ); > } > > > Object unpack( ByteStream buf ) > { > long low = ( LEreadInt( buf ) & 0X00000000FFFFFFFFL ); > long high = ( LEreadInt( buf ) & 0X00000000FFFFFFFFL ); > java.math.BigInteger result=java.math.BigInteger.valueOf(high); > result=result.multiply(java.math.BigInteger.valueOf(0x100000000L)); > result=result.add(java.math.BigInteger.valueOf(low)); > return new PyLong(result); > } > } > > > static class BEUnsignedLongFormatDef extends FormatDef > { > void pack( ByteStream buf, PyObject value ) > { > long lvalue = get_ulong( value ); > if (lvalue<0) { > throw StructError("can't convert negative long to unsigned"); > } > int high = (int) ( (lvalue & 0xFFFFFFFF00000000L)>>32 ); > int low = (int) ( lvalue & 0x00000000FFFFFFFFL ); > BEwriteInt( buf, high ); > BEwriteInt( buf, low ); > } > > > Object unpack( ByteStream buf ) > { > long high = ( BEreadInt( buf ) & 0X00000000FFFFFFFFL ); > long low = ( BEreadInt( buf ) & 0X00000000FFFFFFFFL ); > java.math.BigInteger result=java.math.BigInteger.valueOf(high); > result=result.multiply(java.math.BigInteger.valueOf(0x100000000L)); > result=result.add(java.math.BigInteger.valueOf(low)); > return new PyLong(result); > } > } > > > static class LELongFormatDef extends FormatDef > { > void pack( ByteStream buf, PyObject value ) > { > long lvalue = get_ulong( value ); > int high = (int) ( (lvalue & 0xFFFFFFFF00000000L)>>32 ); > int low = (int) ( lvalue & 0x00000000FFFFFFFFL ); > LEwriteInt( buf, low ); > LEwriteInt( buf, high ); > } > > > Object unpack( ByteStream buf ) > { > long low= ( LEreadInt( buf )&(0x00000000FFFFFFFFL) ); > long high= ( (LEreadInt( buf )<<32)&(0xFFFFFFFF00000000L) ); > long result=(high|low); > return new PyLong(result); > } > } > > > static class BELongFormatDef extends FormatDef > { > void pack( ByteStream buf, PyObject value ) > { > long lvalue = get_ulong( value ); > int high = (int) ( (lvalue & 0xFFFFFFFF00000000L)>>32 ); > int low = (int) ( lvalue & 0x00000000FFFFFFFFL ); > BEwriteInt( buf, high ); > BEwriteInt( buf, low ); > } > > > Object unpack( ByteStream buf ) > { > long high= ( (BEreadInt( buf )<<32)&(0xFFFFFFFF00000000L) ); > long low= ( BEreadInt( buf )&(0x00000000FFFFFFFFL) ); > long result=(high|low); > return new PyLong(result); > } > } > 707a805,806 > new LELongFormatDef() .init('q', 8, 8), > new LEUnsignedLongFormatDef() .init('Q', 8, 8), 724a824,825 > new BELongFormatDef() .init('q', 8, 8), > new BEUnsignedLongFormatDef() .init('Q', 8, 8), 740d840 < // XXX Hack 743,744c843,844 < //new BELongFormatDef() .init('l', 8, 8), < //new BEUnsignedLongFormatDef() .init('L', 8, 8), --- > new BELongFormatDef() .init('q', 8, 8), > new BEUnsignedLongFormatDef() .init('Q', 8, 8),