summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: bump to version 1.11.0 for the official release1.11.0Bryce Harrington2016-05-311-2/+2
|
* configure.ac: bump to version 1.10.93 for the RC1 release1.10.93Bryce Harrington2016-05-241-1/+1
|
* scanner: Remove unused forward decs from client protocolYong Bakos2016-05-201-4/+4
| | | | | | | | | | | | wayland-client-protocol.h had forward declarations for wl_client and wl_resource, yet nothing on the client side references these types. Add a 'side' condition to only generate these forward declarations in the server protocol header. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: <pekka.paalanen@collabora.co.uk> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* display-test: move a misplaced commentMarek Chalupa2016-05-191-2/+2
| | | | | | | | we split a function while refactoring in c643781 and now the comment makes no sense Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* tests: Check for client/server-core.h inclusionYong Bakos2016-05-191-0/+7
| | | | | | | | | | | | | The purpose of wayland-*-protocol-core.h is to mimc the wayland-*-protocol.h generated by scanner --include-core-only. The only difference being what wayland-*-protocol.h should include. Add an include check in the headers-protocol-core-test, to be sure that a wayland-*-protocol.h generated with the --include-core-only option properly includes wayland-*-core.h. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* configure.ac: bump to version 1.10.92 for the beta release1.10.92Bryce Harrington2016-05-171-1/+1
|
* private: Remove unnecessary forward declarationsYong Bakos2016-05-111-4/+0
| | | | | | | | | | | Declarations for wl_connection and wl_closure are not needed here. wl_closure already has a complete definition. Removing these forward declarations results in a clean, warning-free compile. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> [Updated to apply to trunk] Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* connection: Move wl_interface_equal to utilYong Bakos2016-05-113-17/+17
| | | | | | | | | | | | | Move the wl_interface_equal prototype to the top of wayland-private, where it is not buried in the middle of map, connection and closure functions. Move the implementation out of connection and into util. This is a utility function, not specific to connections, and has call sites within connection, wayland-client and wayland-server. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* doc: Formalize file comment in wayland-client.h, wayland-server.hYong Bakos2016-05-112-5/+11
| | | | | | | | | | | | | | | | | | | | | | Publican was generating a subtle error during a build: Error: no ID for constraint linkend: Server-wayland-server-core_8h. This was caused by doxygen applying the doc comment at the top of wayland-server.h as the documentation for struct wl_object. As such, the generated documentation for wl_object was also very incorrect. Make the file doc comments in wayland-client.h and wayland-server.h real doxygen file doc comments with the \file command, add a \brief, make the inclusion warning a \warning, correct the language of the comment in wayland-server.h, and remove one unnecessary line break. This squelches the publican error, removes the bad wl_object documentation, and makes the comment appear in the generated html documentation. References: d74a9c079b1aeb44f69b4132dc2c38362e21f281 Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* protocol: Remove double line breakYong Bakos2016-05-101-1/+0
| | | | | | | All vertical whitespace should manifest as a single blank line, never two. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
* scanner: Add version argument to wayland-scannerArmin Krezović2016-05-061-2/+24
| | | | | | | | | | | | | | | | This adds a command line argument to print wayland-scanner version. It also makes wayland-scanner emit a comment with wayland library version to every file it generates. v2: separate variable definitions into their own lines and remove old style "version" argument Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Tested-by: Yong Bakos <ybakos@humanoriented.com> Signed-off-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* configure.ac: bump to version 1.10.91 for the alpha release1.10.91Bryce Harrington2016-05-031-1/+1
|
* protocol: add support for cross-interface enum attributesAuke Booij2016-05-033-21/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The enum attribute, for which scanner support was introduced in 1771299, can be used to link message arguments to <enum>s. However, some arguments refer to <enum>s in a different <interface>. This adds scanner support for referring to an <enum> in a different <interface> using dot notation. It also sets the attributes in this style in the wayland XML protocol (wl_shm_pool::create_buffer::format to wl_shm::format, and wl_surface::set_buffer_transform::transform to wl_output::transform), and updates the documentation XSL so that this new style is supported. Changes since v2: - add object:: prefix for all enumerations in the documentation - fix whitespace in scanner.c - minor code fixup to return early and avoid casts in scanner.c Changes since v1: - several implementation bugs fixed Signed-off-by: Auke Booij <auke@tulcod.com> Reviewed-by: Nils Christopher Brause <nilschrbrause@googlemail.com> Reviewed-by: Bill Spitzak <spitzak@gmail.com> [Pekka: rebased across cde251a124d41977b447098cc530fcad2834a45f] [Pekka: wrap lines and space fixes in scanner.c] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* protocol: Add summaries to event parametersYong Bakos2016-05-021-63/+65
| | | | | | | | | | All event arg elements now have an appropriate summary attribute. This was conducted mostly in response to the undocumented parameter warnings generated during 'make check'. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* tests: fix typoEric Engestrom2016-05-021-1/+1
| | | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* doc: fix typosEric Engestrom2016-05-022-6/+6
| | | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* util: fix typoEric Engestrom2016-05-021-1/+1
| | | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* server: fix typoEric Engestrom2016-05-021-1/+1
| | | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* client: fix typoEric Engestrom2016-05-021-4/+4
| | | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* protocol: Hyphenate compound adjective surface-localYong Bakos2016-04-291-25/+25
| | | | | | | | | | | Remove superfluous 'local' from 'buffer local'. In addition, simplify the phrasing of local x/y coordinates in parameter summaries. See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* doc: Hyphenate compound adjectives window-local, surface-localYong Bakos2016-04-292-3/+3
| | | | | | | See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* client: Fix wl_display_roundtrip_queue() race conditionJonas Ådahl2016-04-291-2/+11
| | | | | | | | | | | | | | | | | | | | Without this commit, wl_display_roundtrip_queue() is vulnerable to a race condition, causing the callback to be dispatched on the wrong queue. The race condition happens if some non-main thread calls wl_display_roundtrip_queue() with its thread local queue, and the main thread reads and dispatches the callback event from the wl_display_sync() call before the thread local queue is set. The issue is fixed by using a proxy wrapper, making the initialization of the callback proxy atomic, effectively making it no longer possible for some other thread to dispatch the proxy before the correct thread local queue is set. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> [Pekka: check display_wrapper] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* tests/queue-test: Add tests for proxy wrappersJonas Ådahl2016-04-291-0/+122
| | | | | | | | | | Test that doing wl_display.sync on a wrapped proxy with a special queue works as expected. Test that creating a wrapper on a destroyed but not freed proxy fails. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* client: Introduce proxy wrappersJonas Ådahl2016-04-292-1/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | Using the libwayland-client client API with multiple threads with thread local queues are prone to race conditions. The problem is that one thread can read and queue events after another thread creates a proxy but before it sets the queue. This may result in the event to the proxy being silently dropped, or potentially dispatched on the wrong thread had the creating thread set the implementation before setting the queue. This patch introduces API to solve this case by introducing "proxy wrappers". In short, a proxy wrapper is a wl_proxy struct that will never itself proxy any events, but may be used by the client to set a queue, and use it instead of the original proxy when sending requests that creates new proxies. When sending requests, the wrapper will work in the same way as the normal proxy object, but the proxy created by sending a request (for example wl_display.sync) will inherit to the same proxy queue as the wrapper. https://bugs.freedesktop.org/show_bug.cgi?id=91273 Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
* client: Make proxy_destroy a static functionJonas Ådahl2016-04-281-4/+1
| | | | | | | | proxy_destroy() is just the implementation of the atomic part of wl_proxy_destroy(), so lets make it static. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* connection: remove redundant assignmentMarek Chalupa2016-04-231-1/+0
| | | | | | | | | | | | | | | | the code is something like: if (object == NULL && ...) { object = NULL; return; } first, the object is already NULL, second, the assignment has no effect since we return from the function right away Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
* protocol: Correct grammar and spellingYong Bakos2016-04-211-92/+89
| | | | | | | | | | | | | Fix grammar, spelling, tense, and other inconsistencies, based on correctness, consistency, and precedence both here and influenced by wayland-protocols. - Standardize lower case for summary attribute values. - Minor vertical whitespace removal consistency. - Standarize references to coordinates, preferring 'surface local' - Fix spelling, grammar, tense, and punctuation. Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
* utils: move include directives before extern "C" wrapperEmil Velikov2016-04-191-4/+4
| | | | | | | | Analogous to last two commits. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
* server: move include directives before extern "C" wrapperEmil Velikov2016-04-191-4/+4
| | | | | | | | Analogous to previous commit but for the server(-core) header. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
* scanner: move include directives before extern "C" wrapperEmil Velikov2016-04-191-3/+3
| | | | | | | | | | | | Adding extern "C" wrapper before includes (especially system ones) is illadvised as the headers themselves can behave diffently in that case. See the section "Including C Headers in C++ Code" in the following http://www.oracle.com/technetwork/articles/servers-storage-dev/mixingcandcpluspluscode-305840.html Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
* wayland-client: fix spelling mistakeEric Engestrom2016-04-051-2/+2
| | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch>
* protocol: fix spelling mistakeEric Engestrom2016-04-051-1/+1
| | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch>
* scanner: Fix spacing of @paramYong Bakos2016-04-011-1/+1
| | | | | | | | Adds one space to the @param lines in generated .h files, aligning the indentation with the rest of the comment block. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
* ignore: Add *.dtd.embedYong Bakos2016-03-101-0/+1
| | | | | | | | | Although autogen.sh has a --disable-dtd-validation option, it is on by default, so it seems convenient to add the generated symlink to .gitignore. Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* doc: Ignore html subdirectory.Yong Bakos2016-03-101-0/+1
| | | | | Signed-off-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* shm: Log a warning if a shm buffer address is requested when it may be invalidDerek Foreman2016-03-081-0/+5
| | | | | | | | | | | If wl_shm_buffer_get_data() is called on a shm pool that has an external reference and a pending resize, then the buffer may be outside the pool's current mapping. Log a warning if this happens. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* shm: Defer wl_shm_pool_resize if a pool has external referencesDerek Foreman2016-03-081-12/+35
| | | | | | | | | | | | If a compositor is rendering in one thread while dispatching wayland events in another, a wl_shm_pool_resize() could change the memory mappings it's rendering from and cause a crash. Now we defer wl_shm_pool_resize() if the compositor has references on a pool, and perform the actual resize when it drops those references. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* shm: Split pool reference counting into external and internal referencesDerek Foreman2016-03-081-12/+19
| | | | | | | | This is a preliminary step towards deferring shm resize operations until after the compositor has released all external references on a pool. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* server: Fix shm_create_pool size fail path fd leakSergi Granell2016-03-081-10/+10
| | | | | | | | | | | If the client passed a size <= 0 to shm_create_pool, it would go to err_free, which wouldn't close the fd, and thus leave it opened. We can also move the size check before the struct wl_shm_pool malloc, so in case the client passes a wrong size, it won't do an unnecessary malloc and then free. Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* doc: Note strong recommendation to use S-o-b in contributionsBryce Harrington2016-03-071-0/+9
| | | | | Signed-off-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* doc: link between client and server doc and to the wayland bookPeter Hutterer2016-03-072-0/+10
| | | | | | | | And insert "client" or "server" into the PROJECT_NAME to know which one we have. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* doc: generate doxygen html output from the scannerPeter Hutterer2016-03-074-77/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This switches the scanner to generate doxygen-compatible tags for the generated protocol headers, and hooks up the doxygen build to generate server and client-side API documentation. That documentation is now in Client/ and Server/, respectively. GENERATE_HTML is on by default and must be disabled for the xml/man targets to avoid messing up the new documentation. We disable all three three targets in the doxyfile (xml and man default to NO anyway) to make it obvious that they need to be set in the per-target instructions. Each protocol is a separate doxygen @page, with each interface a @subpage. Wayland only has one protocol, wayland-protocols will have these nested. Each protocol page has a list of interfaces and the copyright and description where available. All interfaces are grouped by doxygen @defgroup and @ingroups and appear in "Modules" in the generated output. Each interface subpage has the description and a link to the actual API doc. Function, struct and #defines are documented in doxygen style and associated with the matching interface. Note that pages and groups have fixed HTML file names and are directly linkable/bookmark-able. The @mainpage is a separate file that's included at build time. It doesn't contain much other than links to where the interesting bits are. It's a static file though that supports markdown, so we can extend it easily in the future. For doxygen we need the new options EXTRACT_ALL and OPTIMIZE_OUTPUT_FOR_C so it scans C code properly. EXTRACT_STATIC is needed since most of the protocol hooks are static. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* scanner: avoid executable stackPekka Paalanen2016-03-021-0/+8
| | | | | | | | | | | | | | | | | Before this patch: $ scanelf -lpqe ./wayland-scanner RWX --- --- ./wayland-scanner That indicates the stack is executable, which is a bad thing for security. Wayland-scanner does not actually need an executable stack, it is just an oversight from using an .S file in the sources. Add a special incantation in dtddata.S to make it not cause the stack to become executable. Reported-by: Mart Raudsepp <leio@gentoo.org> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Tested-by: Mart Raudsepp <leio@gentoo.org>
* build: fix ./configure --disable-dtd-validationPekka Paalanen2016-02-293-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When configured with --disable-dtd-validation: CPPAS src/dtddata.o src/dtddata.S: Assembler messages: src/dtddata.S:39: Error: file not found: src/wayland.dtd.embed Makefile:1520: recipe for target 'src/dtddata.o' failed This is because the variable name used does not match the implicit variable name in autoconf. Fix the variable name, making both --disable-dtd-validation and --enable-dtd-validation to what they should. Do not try to build dtddata.S if dtd-validation is disabled. It depends on wayland.dtd.embed which is created by configure only if dtd-validation is enabled. If not building dtddata.S, also make sure the extern definitions in scanner.c are compiled out. Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=575212 Reported-by: leio@gentoo.org Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Tested-by: Bryce Harrington <bryce@osg.samsung.com>
* tests: add test for receiving an error on destroyed objectMarek Chalupa2016-02-261-0/+50
| | | | | | | | | | | test if receiving an error on already destroyed object won't do any harm Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Tested-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
* client: Don't segfault when receiving error on destroyed objectJonas Ådahl2016-02-261-8/+24
| | | | | | | | | | | | | | | | | | | If an error is received on a destroyed object, we'd get NULL passed to display_handle_error() instead of a pointer to a valid wl_proxy. The logging is changed to report [unknown interface] and [unknown id] instead of the actual interface name and id. The wl_display_get_protocol_error() documentation is updated to handle the situation. For when the proxy was NULL, the object id 0 and interface NULL is written. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> [Pekka: changed the error message wording] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Jonas Ådahl <jadahl@gmail.com>
* doc: Use enum argument type to make links in protocol documentationBill Spitzak2016-02-191-7/+19
| | | | Reviewed-by: Auke Booij <auke@tulcod.com>
* Revert "server: validate resource versions at creation time"Derek Foreman2016-02-181-7/+0
| | | | | | | | | This reverts commit 88ff135ad46b556b6fdeb1244ffd019a262967bc. The parent interface version may be higher than this interface version, and the child object should inherit that version. This check is wrong.
* Revert "build: build distcheck with --enable-fatal-warnings"Derek Foreman2016-02-171-2/+0
| | | | | | | This reverts commit 8125919b0d8e7c776652e4f1d829b9edfa6c4a68. This makes things far more annoying than intended, especially since the list of default warnings isn't consistent from distro to distro.
* build: build distcheck with --enable-fatal-warningsDerek Foreman2016-02-161-0/+2
| | | | | Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>