diff options
author | marha <marha@users.sourceforge.net> | 2014-03-04 12:18:13 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-03-04 12:23:48 +0100 |
commit | 45392e4a0642880b569ea5d4a350cdc395a2c7db (patch) | |
tree | c3c2a49de903a18c3f8e1bf79684c29337ebcf7c /libxcb | |
parent | 5ec0616d4e3c4c6095f4975abbe9c21e5b6af967 (diff) | |
parent | 321c01267ae1c446f1bd22b642567fcafa016c02 (diff) | |
download | vcxsrv-45392e4a0642880b569ea5d4a350cdc395a2c7db.tar.gz vcxsrv-45392e4a0642880b569ea5d4a350cdc395a2c7db.tar.bz2 vcxsrv-45392e4a0642880b569ea5d4a350cdc395a2c7db.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libX11 libxcb mesa xserver xcb-proto xkeyboard-config git update 4 Mar 2014
Conflicts:
mesalib/src/mapi/glapi/glapi.h
mesalib/src/mapi/glapi/glthread.c
mesalib/src/mesa/drivers/dri/common/dri_util.c
mesalib/src/mesa/main/bufferobj.c
xorg-server/dix/dispatch.c
xorg-server/hw/xwin/glx/gen_gl_wrappers.py
xorg-server/hw/xwin/winmultiwindowwm.c
Diffstat (limited to 'libxcb')
-rw-r--r-- | libxcb/src/xcb_conn.c | 3 | ||||
-rw-r--r-- | libxcb/src/xcbint.h | 1 | ||||
-rw-r--r-- | libxcb/xcb-proto/xcbgen/matcher.py | 2 | ||||
-rw-r--r-- | libxcb/xcb-proto/xcbgen/state.py | 4 |
4 files changed, 10 insertions, 0 deletions
diff --git a/libxcb/src/xcb_conn.c b/libxcb/src/xcb_conn.c index 72c4af7c2..7a4ae5646 100644 --- a/libxcb/src/xcb_conn.c +++ b/libxcb/src/xcb_conn.c @@ -395,6 +395,9 @@ void _xcb_conn_shutdown(xcb_connection_t *c, int err) /* Return connection error state. * To make thread-safe, I need a seperate static * variable for every possible error. + * has_error is the first field in xcb_connection_t, so just + * return a casted int here; checking has_error (and only + * has_error) will be safe. */ xcb_connection_t *_xcb_conn_ret_error(int err) { diff --git a/libxcb/src/xcbint.h b/libxcb/src/xcbint.h index b25f03b3e..67cf5711e 100644 --- a/libxcb/src/xcbint.h +++ b/libxcb/src/xcbint.h @@ -192,6 +192,7 @@ void _xcb_ext_destroy(xcb_connection_t *c); /* xcb_conn.c */ struct xcb_connection_t { + /* This must be the first field; see _xcb_conn_ret_error(). */ int has_error; /* constant data */ diff --git a/libxcb/xcb-proto/xcbgen/matcher.py b/libxcb/xcb-proto/xcbgen/matcher.py index 6e45b236c..bfa315eb5 100644 --- a/libxcb/xcb-proto/xcbgen/matcher.py +++ b/libxcb/xcb-proto/xcbgen/matcher.py @@ -18,10 +18,12 @@ def import_(node, module, namespace): ''' # To avoid circular import error from xcbgen import state + module.import_level = module.import_level + 1 new_file = join(namespace.dir, '%s.xml' % node.text) new_root = parse(new_file).getroot() new_namespace = state.Namespace(new_file) execute(module, new_namespace) + module.import_level = module.import_level - 1 if not module.has_import(node.text): module.add_import(node.text, new_namespace) diff --git a/libxcb/xcb-proto/xcbgen/state.py b/libxcb/xcb-proto/xcbgen/state.py index 52b8d8da7..a6ad3a11e 100644 --- a/libxcb/xcb-proto/xcbgen/state.py +++ b/libxcb/xcb-proto/xcbgen/state.py @@ -65,6 +65,8 @@ class Module(object): self.output = output self.imports = [] + self.direct_imports = [] + self.import_level = 0 self.types = {} self.events = {} self.errors = {} @@ -107,6 +109,8 @@ class Module(object): # Keeps track of what's been imported so far. def add_import(self, name, namespace): + if self.import_level == 0: + self.direct_imports.append((name, namespace.header)) self.imports.append((name, namespace.header)) def has_import(self, name): |