修改JDK的经历:两处字体的粗体代码引起的错误

Posted 柳鲲鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改JDK的经历:两处字体的粗体代码引起的错误相关的知识,希望对你有一定的参考价值。

  上周通知同事:更新泰山JDK8(u323-420),艺术字粗体问题不需要专门判断,新增代码可删除。这是怎么回事呢?

  某日同事找吾,说艺术字的粗体出问题了,就是没效果。吾当时就愣了:泰山JDK8在修改粗体的时候,吾反复确认过几次,确保兼容原来的粗体方式,怎么现在粗体出问题了?当时大脑飞快的思考哪里出错,并进行了验证,发现是权重不同导致的。于是增加了一个参数,区别是不是艺术字。

  合并OpenJDK8-u322的时候,吾仔细看了freetypeScaler.cpp的代码,发现原来的代码中存在两处粗体斜体处理。吾只修改了其中一处,艺术字时走的另外一处,所以出错了。

  原因找到了,怎么解决呢?一般人都是把修改的部分再复制一遍。这是六石编程学极力反对的。正确做法是:

  • 新建一个处理粗体斜体的函数,复制正确的代码
  • 删除两处处理粗体斜体的代码,改为调用新增函数

以上是关于修改JDK的经历:两处字体的粗体代码引起的错误的主要内容,如果未能解决你的问题,请参考以下文章

textview可以设置字体的粗体 斜体吗

代码过滤富文本的粗体 斜体 颜色 空格

代码过滤富文本的粗体 斜体 颜色 空格

textView 中的粗体/斜体样式文本输入

Tkinter Fonts(字体)

Java 没有合成斜体字体