软讯网络 > 软件时空 > 软件相关 > 这个bug错的很无语
【标 题】:这个bug错的很无语
【关键字】:
bug
【来 源】:http://blog.csdn.net/egxsguo/archive/2007/03/15/1530599.aspx
这个bug错的很无语
今天给秦天做一个Windows Mobile版帝国时代的图片转换工具,我是基于原来的PngerX新开了一个函数,按照新的文件格式把数据导出的,结果发给他用时老是报多IDAT区块的错误,回来查看源代码发现是Vector size写错了。有许多PNG图片在经过压缩工具压缩后都会把单一IDAT区块变成多IDAT区块,但是在帝国时代里只能允许单IDAT区块的数据文件,所以我在转换时加了一条提示信息,判断当IDAT区块大于1时就报错,但是当时设计的时候IDAT Vector不仅存放了IDAT数据块本身,紧接着还存放了CRC码,等于两个数据共用了一个Vector,所以应该是大于2报错。但是时间长了现在看到idatList这个变量名想当然的就大于1报错,于是bug就又找上门来了。
仔细总结一下,教训是蛮深刻的,数据的存放应该尽量的纯粹,否则等于在设计的时候就把bug埋在了那,不知道什么时候就会爆发!