最近想用jython写一个simulator,用到struct.pack(),结果发现了里面的一个bug.代码如下:
import struct
dataunits = struct.pack('!HHIIIBBHQ', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000, 0x1234)
print len(dataunits)
dataunits = struct.pack('!HHIIIBBH', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000)
print len(dataunits)
s = struct.pack('!Q', 0x1234)
print len(s)
在jython2.2.1下面, 结果是: 32, 20, 8, 在python下面,结果是: 28, 20, 8.发到jython的mail list里面,已经有人确定并k到bug里面去了.
作者在使用Jython编写模拟器过程中发现struct.pack()函数存在一个Bug,在特定参数下返回的数据长度与Python标准实现不符。该问题已在Jython邮件列表中被确认。
5968

被折叠的 条评论
为什么被折叠?



