summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2015-04-04 16:51:35 +0200
committerUli Schlachter <psychon@znc.in>2015-04-04 16:51:35 +0200
commit5cf2876228f247248e9e2d880cc76d0685aa3cdd (patch)
tree05a63c3b3f8acad8b283c7027ee8f7a90155a0df
parent0ebef8dd7f12e7520c1003a0197313ae7dd7c1ac (diff)
Save static info as a pointer instead of copying it
Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r--src/errors.h2
-rwxr-xr-xsrc/extensions.py2
-rw-r--r--src/xcb_errors.c18
3 files changed, 11 insertions, 11 deletions
diff --git a/src/errors.h b/src/errors.h
index 8065c78..c77c51c 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -43,6 +43,6 @@ extern const struct static_extension_info_t xproto_info;
int register_extensions(xcb_errors_context_t *ctx, xcb_connection_t *conn);
int register_extension(xcb_errors_context_t *ctx, xcb_connection_t *conn,
xcb_query_extension_cookie_t cookie,
- const struct static_extension_info_t static_info);
+ const struct static_extension_info_t *static_info);
#endif /* __ERRORS_H__ */
diff --git a/src/extensions.py b/src/extensions.py
index a3aa2c3..0f7d384 100755
--- a/src/extensions.py
+++ b/src/extensions.py
@@ -119,7 +119,7 @@ output.write("\tint ret = 0;\n");
for idx in range(len(modules)):
output.write("\tcookies[%d] = xcb_query_extension(conn, strlen(\"%s\"), \"%s\");\n" % (idx, modules[idx].xname, modules[idx].xname));
for idx in range(len(modules)):
- output.write("\tret |= register_extension(ctx, conn, cookies[%d], extension_%s_info);\n" % (idx, modules[idx].name));
+ output.write("\tret |= register_extension(ctx, conn, cookies[%d], &extension_%s_info);\n" % (idx, modules[idx].name));
output.write("\treturn ret;\n");
output.write("}\n");
diff --git a/src/xcb_errors.c b/src/xcb_errors.c
index 8fdf182..5a469e2 100644
--- a/src/xcb_errors.c
+++ b/src/xcb_errors.c
@@ -30,7 +30,7 @@
struct extension_info_t {
struct extension_info_t *next;
- struct static_extension_info_t static_info;
+ const struct static_extension_info_t *static_info;
uint8_t major_opcode;
uint8_t first_event;
uint8_t first_error;
@@ -48,7 +48,7 @@ static const char *get_strings_entry(const char *strings, unsigned int index) {
int register_extension(xcb_errors_context_t *ctx, xcb_connection_t *conn,
xcb_query_extension_cookie_t cookie,
- const struct static_extension_info_t static_info)
+ const struct static_extension_info_t *static_info)
{
struct extension_info_t *info;
xcb_query_extension_reply_t *reply;
@@ -126,7 +126,7 @@ const char *xcb_errors_get_name_for_major_code(xcb_errors_context_t *ctx,
if (info == NULL)
return get_strings_entry(xproto_info.strings_minor, major_code);
- return info->static_info.name;
+ return info->static_info->name;
}
const char *xcb_errors_get_name_for_minor_code(xcb_errors_context_t *ctx,
@@ -138,10 +138,10 @@ const char *xcb_errors_get_name_for_minor_code(xcb_errors_context_t *ctx,
while (info && info->major_opcode != major_code)
info = info->next;
- if (info == NULL || minor_code >= info->static_info.num_minor)
+ if (info == NULL || minor_code >= info->static_info->num_minor)
return NULL;
- return get_strings_entry(info->static_info.strings_minor, minor_code);
+ return get_strings_entry(info->static_info->strings_minor, minor_code);
}
const char *xcb_errors_get_name_for_event(xcb_errors_context_t *ctx,
@@ -173,8 +173,8 @@ const char *xcb_errors_get_name_for_event(xcb_errors_context_t *ctx,
}
if (extension)
- *extension = best->static_info.name;
- return get_strings_entry(best->static_info.strings_events, event_code - best->first_event);
+ *extension = best->static_info->name;
+ return get_strings_entry(best->static_info->strings_events, event_code - best->first_event);
}
const char *xcb_errors_get_name_for_error(xcb_errors_context_t *ctx,
@@ -206,6 +206,6 @@ const char *xcb_errors_get_name_for_error(xcb_errors_context_t *ctx,
}
if (extension)
- *extension = best->static_info.name;
- return get_strings_entry(best->static_info.strings_errors, error_code - best->first_error);
+ *extension = best->static_info->name;
+ return get_strings_entry(best->static_info->strings_errors, error_code - best->first_error);
}