2009-07-07 51 views
0

我分配下一个代码颜色项Xlib中一个颜色表项,然后我用它来正确绘制:无法释放与XFreeColors()

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

解决:我在做两个呼叫到XFreeColors:

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

与精确的第二个电话一定不能做的,这是没有必要的。