Commit graph

26 commits

Author SHA1 Message Date
Yong Bakos
d29b923305 doc: Unpublish wl_log* and wl_abort
The public documentation included descriptions of wl_log_stderr_handler,
wl_log_func_t wl_log_handler, wl_log and wl_abort. These are not accessible
via the public API.

Move the doxygen \endcond command to wrap these definitions, removing them
from publication.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-06-01 17:34:21 -07:00
Yong Bakos
385906beae connection: Move wl_interface_equal to util
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>
2016-05-11 11:05:06 -07:00
Sergi Granell
6301639146 cosmetic: use tabs instead of spaces 2016-02-04 16:37:34 -08:00
Marek Chalupa
5ac34a1012 cosmetic: return NULL instead of 0
we're returning a pointer

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-01 17:05:16 -08:00
Marek Chalupa
c7bada036d add wl_abort private function
On many places in the code we use wl_log + abort or wl_log + assert(0).
Replace these with one call to wl_abort, so that we don't mix abort(),
assert(0) and we'll save few lines

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2015-11-16 12:58:43 -08:00
Bryce Harrington
3c91b0878d src: Update boilerplate from MIT X11 license to MIT Expat license
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-12 15:31:24 -07:00
Bill Spitzak
d3770c0661 doc: Remove wl_map from documentation
This object is only in wayland-private.h so it's methods should not
be in the documentation.

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-23 18:44:56 -08:00
Kristian Høgsberg
a7524ed0d4 Make default log handler print to stderr
On the client side we log fatal errors before we exit.  If a client doesn't
set a log handler, it's hard to figure out what goes wrong.
2014-02-07 15:57:07 -08:00
Jason Ekstrand
2d586a759e Remove incorrect sanity-check from wl_map_insert_at
I got a little over-eager with my sanity checks and didn't realize that the
client uses wl_map_insert_at to mark objects as zombies when they come from
the server-side.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-06-05 17:45:47 -04:00
Jason Ekstrand
8fd60c683a Change WL_ZOMBIE_OBJECT from 0x2 to an actual pointer
In order to use the second-lowest bit of each pointer in wl_map for the
WL_MAP_ENTRY_LEGACY flag, every pointer has to be a multiple of 4.  This
was a good assumption, except with WL_ZOMBIE_OBJECT.  This commit creates
an actual static variable to which WL_ZOMBIE_OBJECT now points.  Since
things are only every compared to WL_ZOMBIE_OBJECT with "==" or "!=", the
only thing that matters is that it is unique.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-06-05 17:45:36 -04:00
Jason Ekstrand
2c7468b868 Add support for flags in the wl_map API and add a WL_MAP_ENTRY_LEGACY flag
The implementation in this commit allows for one bit worth of flags.  If
more flags are desired at a future date, then the wl_map implementation
will have to change but the wl_map API will not.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-06-05 00:55:17 -04:00
Jason Ekstrand
28472970df Add a "side" field and some sanity checks to wl_map.
The original wl_map implementation did no checking to ensures that ids fell
on the correct side of the WL_SERVER_ID_START line.  This meant that a
client could send the server a server ID and it would happily try to use
it.  Also, there was no distinction between server-side and client-side in
wl_map_remove.  Because wl_map_remove added the entry to the free list
regardless of which side it came from, the following set of actions would
break the map:

1. Client creates a bunch of objects
2. Client deletes one or more of those objects
3. Client does something that causes the server to create an object

Because of the problem in wl_map_remove, the server would take an old
client-side id, apply the WL_SERVER_ID_START offset, and try to use it as a
server-side id regardless of whether or not it was valid.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-06-05 00:33:57 -04:00
Giulio Camuffo
4e9892478b utils: const-ify some function arguments 2013-04-03 12:46:57 -04:00
David Herrmann
c13a65fd20 wayland-util: return 0 on OOM in wl_map_insert_new()
If we cannot increase the array for new entries, we now return 0 instead
of accessing invalid memory.

krh: Edited to return 0 on failure instead.  In the initialization path,
we call wl_map_insert_new() to insert NULL at index 0, which also returns
0 but not as an error.  Since we do that up front, every other case of
returning 0 is an unambiguous error.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-10-15 16:08:27 -04:00
David Herrmann
0d5850e6d6 wayland-util: return -1 if wl_array_copy() fails
We might have to perform memory allocations in wl_array_copy(), so catch
out-of-memory errors in wl_array_add() and return -1 before changing any
state.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-10-15 16:06:15 -04:00
Mathias Fiedler
bfcd681930 wayland-util: add method for reserving new object id
wl_map_reserve_new() ensures that new id is valid and will point to an
empty array entry.
2012-07-22 14:09:48 -04:00
Jonas Ådahl
f36f32a0e0 wayland-util: wl_list_insert_list() should accept empty lists
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-06-12 20:18:38 -04:00
Martin Minarik
8e2a786703 Wayland: logging
The core libwayland libraries should not handle logging, only passing
the error messages to subscribed functions.
An application linked to libwayland-server or libwayland-client
will be able to set own functions (one per library) to handle error
messages.

Change in this series: make the wl_log return int, because
of compatibility with printf. It will return the number of bytes logged.
2012-05-31 13:57:15 -04:00
Kristian Høgsberg
0ca75a4f32 wayland-util: Fix wl_array signedness warnings 2012-03-30 10:43:36 -04:00
Pekka Paalanen
804d5dd348 util: clear pointers on wl_list_remove()
Set the next and prev pointers of the removed list element to NULL. This
will catch programming errors that would use invalid list pointers,
double-remove for instance.

It also helps debugging, making it easy to see in gdb if an object is
not in a list.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-29 14:46:49 +02:00
Kristian Høgsberg
bdbd6ef80b Add support for server allocated object IDs
We set aside a range of the object ID space for use by the server.  This
allows the server to bind an object to an ID for a client and pass that
object to the client.  The client can use the object immediately and the
server can emit events to the object immdiately.
2011-11-22 14:04:11 -05:00
Kristian Høgsberg
cf04b0a18f Move private definitions and prototypes to new wayland-private.h 2011-11-18 13:46:56 -05:00
Kristian Høgsberg
68d13212f2 Fix unused variable warning 2011-11-18 13:12:18 -05:00
Kristian Høgsberg
51f50b8c64 util: Add wl_list_insert_list() 2011-11-15 13:48:41 -05:00
Kristian Høgsberg
c8147edc3a Store objects in wl_map data structure
The wl_map data structure is just an array with a free-list that lets the
client recycle unused client IDs and keep range of client IDs under control.
2011-08-27 12:06:11 -04:00
Kristian Høgsberg
4c260db68c Rename source subdir from wayland to src 2011-08-12 16:25:14 -04:00
Renamed from wayland/wayland-util.c (Browse further)