2006-01-07

txt2pdbdoc

经常用palm看些电子书,所以用txt2pdbdoc自己做.pdb文件是免不了的。可是要命的是,中文文本用它制作时,常常发生core dump。今天没事,分析了一下,发现问题处在compress这个函数上。这是个非常简单的压缩算法;但该算法效率最差时,压缩之后的数据要比之前的还要大。看来这个算法对英文等字符集较小的文字效率不错,但对中文就有点水土不服啦。因为压缩后的数据超出了预期大小,造成了缓冲区溢出,引发莫名其妙的问题就在所难免了。

找到问题所在,解决就很简单了:对中文文档,指定参数“-c”,不进行压缩。不过,这样其实是指标不治本,还是修改一下代码来的实在。把缓冲区增大到压缩算法效率最差时需要的空间。这里是修改之后的patch,把缓冲区增加到原来的两倍,问题解决。

3 条评论:

匿名 说...

不错不错
不过我都是在windows下制作pdb的...

carlos 说...

提交一下吧,最好是能让 official deb package 能升级一下。 :P

xyb 说...

当然,patch已经提交到Debian Bug Tracker了,编号#346348。