[Xcb-commit] atom
Julien Danjou
jdanjou at kemper.freedesktop.org
Thu Sep 18 01:15:29 PDT 2008
atom/atoms.gperf.m4 | 13 +++++++++++++
atom/xcb_atom.h.m4 | 10 ++++++++++
2 files changed, 23 insertions(+)
New commits:
commit 85f200ad455d8ac90e04b8d2a9b6e7ae948abe5e
Author: Henning Sten <henning.sten at yahoo.com>
Date: Wed Sep 17 20:59:23 2008 +0200
introduce function xcb_atom_get (essentially a synchronous xcb_intern_atom, use it only on non-performance critical execution paths)
Signed-off-by: Julien Danjou <julien at danjou.info>
diff --git a/atom/atoms.gperf.m4 b/atom/atoms.gperf.m4
index 0b7416b..d26814e 100644
--- a/atom/atoms.gperf.m4
+++ b/atom/atoms.gperf.m4
@@ -42,6 +42,19 @@ define(`DO', ` OFFSET,define(`OFFSET', eval(OFFSET+1+len($1)))')dnl
include(atomlist.m4)`'dnl
};
+xcb_atom_t xcb_atom_get(xcb_connection_t *connection, const char *atom_name)
+{
+ if(atom_name == NULL)
+ return XCB_NONE;
+ xcb_intern_atom_reply_t *reply = xcb_intern_atom_reply(connection,
+ xcb_intern_atom(connection, 0, strlen(atom_name), atom_name), NULL);
+ if(!reply)
+ return XCB_NONE;
+ xcb_atom_t atom = reply->atom;
+ free(reply);
+ return atom;
+}
+
xcb_atom_t xcb_atom_get_predefined(uint16_t name_len, const char *name)
{
const struct atom_map *value = in_word_set(name, name_len);
diff --git a/atom/xcb_atom.h.m4 b/atom/xcb_atom.h.m4
index d4957c5..7eb44cd 100644
--- a/atom/xcb_atom.h.m4
+++ b/atom/xcb_atom.h.m4
@@ -15,6 +15,16 @@ typedef struct {
} u;
} xcb_atom_fast_cookie_t;
+/**
+ * @brief Get an atom synchronously.
+ * @param connection The connection to the X server.
+ * @param atom_name The name of the atom that should be returned.
+ * @return The requested atom, or XCB_NONE if there is an error.
+ *
+ * xcb_atom_get() is essentially a synchronous version of xcb_intern_atom(),
+ * use it only on non-performance critical execution paths.
+ */
+xcb_atom_t xcb_atom_get(xcb_connection_t *connection, const char *atom_name);
xcb_atom_t xcb_atom_get_predefined(uint16_t name_len, const char *name);
xcb_atom_fast_cookie_t xcb_atom_get_fast(xcb_connection_t *c, uint8_t only_if_exists, uint16_t name_len, const char *name);
xcb_atom_t xcb_atom_get_fast_reply(xcb_connection_t *c, xcb_atom_fast_cookie_t cookie, xcb_generic_error_t **e);
More information about the xcb-commit
mailing list