无法使用XFreeColors()在Xlib中释放colormap条目

时间:2009-07-07 16:11:56

标签: c x11 xlib

我使用下一个代码分配一个颜色条目,然后我用它来正确绘制:

char *color_name = "red";
XColor color, exact;

XAllocNamedColor(display, colormap, color_name, &color, &exact);

然后,当我不再需要颜色条目时,我尝试释放它:

XFreeColors(display, colormap, &color.pixel, 1, 0);

此调用会生成下一个错误:

 Error of failed request:  BadAccess (attempt to access private resource denied)
 Major opcode of failed request:  88 (X_FreeColors)
 Serial number of failed request:  17
 Current serial number in output stream:  19

我有什么问题吗?我怎样才能释放那个颜色?那个颜色条目应该被释放?

1 个答案:

答案 0 :(得分:1)

解决:我正在两次调用XFreeColors:

XFreeColors(display, colormap, &color.pixel, 1, 0);
XFreeColors(display, colormap, &exact.pixel, 1, 0);

不能进行第二次精确调用,这是没有必要的。