1

fontconfig 库有一个函数FcFini

文档只是

FcFini [...]

释放之前调用 fontconfig 函数分配的所有数据结构。Fontconfig 返回到未初始化状态,需要在调用任何其他 fontconfig 函数之前重新调用其中一个 FcInit 函数。

但是,文档没有说明我为什么要调用它。它会释放一些内存,但我无法想象 fontconfig 会吞噬大量内存。无论如何,除非我能确保我永远不会再调用 fontconfig,否则我只能在程序结束时调用 FcFini,此时释放内存毫无意义。那么为什么要打扰呢?

顺便说一句,我注意到使用 fontconfig 的cairo渲染库只FcFini在其测试代码中调用,而在生产代码中从不调用。所以似乎开罗的作者也没有看到调用它的意义......还是他们错了?

4

1 回答 1

4

一个典型的原因是从 valgrind 或 purify 获得有效的输出。如果您在退出时有泄漏,您可能希望减少调试或测试版本中的泄漏。

于 2014-10-26T23:11:17.530 回答