summaryrefslogtreecommitdiffstats
path: root/doc/FreeXId.3
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FreeXId.3')
-rw-r--r--doc/FreeXId.322
1 files changed, 20 insertions, 2 deletions
diff --git a/doc/FreeXId.3 b/doc/FreeXId.3
index 84fef26..dd1d141 100644
--- a/doc/FreeXId.3
+++ b/doc/FreeXId.3
@@ -4,7 +4,7 @@
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-'\"
+'\"
.TH Tk_FreeXId 3 4.0 Tk "Tk Library Procedures"
.so man.macros
.BS
@@ -25,6 +25,24 @@ context, or colormap) that is no longer in use.
.BE
.SH DESCRIPTION
.PP
-This function is deprecated, it doesn't do anything since 2008-08-19.
+The default allocator for resource identifiers provided by Xlib is very
+simple-minded and does not allow resource identifiers to be re-used.
+If a long-running application reaches the end of the resource id
+space, it will generate an X protocol error and crash.
+Tk replaces the default id allocator with its own allocator, which
+allows identifiers to be reused.
+In order for this to work, \fBTk_FreeXId\fR must be called to
+tell the allocator about resources that have been freed.
+Tk automatically calls \fBTk_FreeXId\fR whenever it frees a
+resource, so if you use procedures like \fBTk_GetFont\fR,
+\fBTk_GetGC\fR, and \fBTk_GetPixmap\fR then you need not call
+\fBTk_FreeXId\fR.
+However, if you allocate resources directly from Xlib, for example
+by calling \fBXCreatePixmap\fR, then you should call \fBTk_FreeXId\fR
+when you call the corresponding Xlib free procedure, such as
+\fBXFreePixmap\fR.
+If you do not call \fBTk_FreeXId\fR then the resource identifier will
+be lost, which could cause problems if the application runs long enough
+to lose all of the available identifiers.
.SH KEYWORDS
resource identifier