<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wayland/src, branch 1.7</title>
<subtitle>[no description]</subtitle>
<id>http://git.sudomsg.com/mirror/wayland/atom/src?h=1.7</id>
<link rel='self' href='http://git.sudomsg.com/mirror/wayland/atom/src?h=1.7'/>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/'/>
<updated>2015-01-29T02:12:31Z</updated>
<entry>
<title>event-loop: Dispatch idle callbacks twice</title>
<updated>2015-01-29T02:12:31Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2015-01-28T15:25:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5ec8062df26f21cfe7a031eaf83a1b4d99085f36'/>
<id>urn:sha1:5ec8062df26f21cfe7a031eaf83a1b4d99085f36</id>
<content type='text'>
To fix a shutdown crash in weston's x11 compositor I want to move the
weston X window close to an idle handler.

Since idle handlers are processed at the start of an event loop, the
handler that deals with window close will run at the start of the
next input_loop dispatch, after which the dispatcher blocks on epoll
forever (since all input events that will ever occur have been consumed).

Dispatching idle callbacks both at the start and end of event-loop
processing will prevent this permanent blocking.

Note that just moving the callback dispatch could theoretically
result in an idle callback being delayed indefinitely while waiting
for epoll_wait() to complete.

Callbacks are removed from the list when they're run, so the second
dispatch won't result in any extra calls.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Giulio Camuffo &lt;giuliocamuffo@gmail.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>client: unref or destroy proxy when releasing queue</title>
<updated>2015-01-28T17:17:19Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-12-19T13:53:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5c70c031903352530f701ca4badf4be1763984a4'/>
<id>urn:sha1:5c70c031903352530f701ca4badf4be1763984a4</id>
<content type='text'>
When we release event queue with queued events, we can leak
proxies in some cases.

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>client: release display queue in wl_display_disconnect()</title>
<updated>2015-01-28T17:17:16Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-12-19T13:53:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=73cb90763ce17eab9b066c5916a367e243e538c9'/>
<id>urn:sha1:73cb90763ce17eab9b066c5916a367e243e538c9</id>
<content type='text'>
Don't leak events, not even on exit

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>scanner: Fix header generation for server protocols</title>
<updated>2015-01-27T11:18:36Z</updated>
<author>
<name>Mariusz Ceier</name>
<email>mceier+wayland@gmail.com</email>
</author>
<published>2014-12-15T11:48:38Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6197f32cadc82d62a3641385098fe5ffebc147d6'/>
<id>urn:sha1:6197f32cadc82d62a3641385098fe5ffebc147d6</id>
<content type='text'>
Server protocols headers should include wayland-server.h,
instead of wayland-util.h. Otherwise they're not useable
with C++ compiler unless wayland-server.h was included
earlier.

Signed-off-by: Mariusz Ceier &lt;mceier+wayland@gmail.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>cosmetic: Cleanup trailing whitespace</title>
<updated>2015-01-26T19:30:57Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2015-01-26T19:30:57Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=71c37eb91aea311b3d5f66e944f7b7521c42189a'/>
<id>urn:sha1:71c37eb91aea311b3d5f66e944f7b7521c42189a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cosmetic: Move the deprecated functions back to the end of the file</title>
<updated>2015-01-26T19:29:03Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2015-01-24T15:24:23Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a1a6aa54aa4db524ffd2fccf606acfe0a914a0b9'/>
<id>urn:sha1:a1a6aa54aa4db524ffd2fccf606acfe0a914a0b9</id>
<content type='text'>
There are functions below the "Deprecated functions below" comment
that are not deprecated.

Move the deprecated functions back down, and add a comment at the
end of the file to try to keep this from happening again.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: made functions taking wl_event_queue arg belong to wl_event_queue</title>
<updated>2015-01-24T02:44:57Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2015-01-03T02:29:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1f39fbf8d282b3c70e8a78a37a0b2cf7ac863763'/>
<id>urn:sha1:1f39fbf8d282b3c70e8a78a37a0b2cf7ac863763</id>
<content type='text'>
The fact that these functions take both a display and queue argument is
I think historical, and they really are methods on the queue.

Also added some docs for wl_display_prepare_read_queue.

Reviewed-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: Remove wl_map from documentation</title>
<updated>2015-01-24T02:44:56Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2015-01-03T02:29:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d3770c0661f1c38ee3d0eecef32a4ffeee96907b'/>
<id>urn:sha1:d3770c0661f1c38ee3d0eecef32a4ffeee96907b</id>
<content type='text'>
This object is only in wayland-private.h so it's methods should not
be in the documentation.

Reviewed-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: Remove deprecated functions from documentation</title>
<updated>2015-01-24T02:44:55Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2015-01-03T02:29:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=074e120cb3ec373b5594cc29280b4622d18c422d'/>
<id>urn:sha1:074e120cb3ec373b5594cc29280b4622d18c422d</id>
<content type='text'>
Reviewed-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: add missing \memberof to wl_display_get_protocol_error</title>
<updated>2015-01-24T02:44:54Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2015-01-03T02:29:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=594ec7e6893db1b15178cc748b7027692acb7c2f'/>
<id>urn:sha1:594ec7e6893db1b15178cc748b7027692acb7c2f</id>
<content type='text'>
Reviewed-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>server: Use existing id variable when inserting created object</title>
<updated>2015-01-24T02:20:41Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2015-01-23T08:21:15Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ab3ee6f6d96c2e9adc3808975fdaf1727e5ff48e'/>
<id>urn:sha1:ab3ee6f6d96c2e9adc3808975fdaf1727e5ff48e</id>
<content type='text'>
We already have the id variable there and it makes it slightly easier to
read.

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Reviewed-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>client: update documentation about threading</title>
<updated>2014-12-09T16:05:04Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-12-05T13:00:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=434fd45e4b62a5e410020bbc124d8e3460729aa2'/>
<id>urn:sha1:434fd45e4b62a5e410020bbc124d8e3460729aa2</id>
<content type='text'>
Remove out-dated documentation and add few more words
about this topic.

v2. replace a paragraph by better explanation from Pekka Paalanen
    fix other notes from reviewing

v3. fix typo

v4. fix flags for poll in an example

    add wl_display_cancel_read() to another example
    (so that user sees that it should be used)

    move proper use of wl_display_prepare_read
    before the explanation why it is wrong to use
    wl_display_displach

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Daniel Stone &lt;daniel@fooishbar.org&gt;
</content>
</entry>
<entry>
<title>client: update obsolete comments</title>
<updated>2014-12-09T16:03:35Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-12-03T14:53:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=77939736fb613896fb9f5d262cd877acfb2728d2'/>
<id>urn:sha1:77939736fb613896fb9f5d262cd877acfb2728d2</id>
<content type='text'>
1) there is nothing like main thread since
   3c7e8bfbb4745315b7bcbf69fa746c3d6718c305 anymore, so remove
   it from documentation and update the doc accordingly.

2) use calling 'default queue' instead of 'main queue'. In the code
   we use display-&gt;default_queue, so it'll be easier the understand.

3) update some obsolete or unprecise pieces of documentation

v2. Not only remove out-of-date comment, but fix/remove more
    things across the wayland-client.[ch]

v3. fixes (rephrasing unclear paragraphs etc.)
    according to Pakka Paalanen notes (thanks)

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Daniel Stone &lt;daniel@fooishbar.org&gt;
</content>
</entry>
<entry>
<title>scanner.c: Use WL_PRINTF instead of __attribute__((format(printf)))</title>
<updated>2014-11-28T10:37:20Z</updated>
<author>
<name>Seedo Eldho Paul</name>
<email>seedoeldhopaul@gmail.com</email>
</author>
<published>2014-11-27T15:20:14Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=93e352d05808820664f8bcb362785d1861b78ccb'/>
<id>urn:sha1:93e352d05808820664f8bcb362785d1861b78ccb</id>
<content type='text'>
Signed-off-by: Seedo Eldho Paul &lt;seedoeldhopaul@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: fixed grammar and a typo</title>
<updated>2014-11-27T14:00:16Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2014-11-17T20:59:14Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=e36d0233ee2d4e31a27c5e4b7b3a39c872267a69'/>
<id>urn:sha1:e36d0233ee2d4e31a27c5e4b7b3a39c872267a69</id>
<content type='text'>
Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: Removed extra indentation from wl_list code sample</title>
<updated>2014-11-26T11:34:26Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2014-11-26T01:41:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=266b7f06bee13b06f2a73cb7330382de69cbf1ce'/>
<id>urn:sha1:266b7f06bee13b06f2a73cb7330382de69cbf1ce</id>
<content type='text'>
This is a minor documentation fix. I did not see any asterisks in the
output as reported by Pekka Paalanen. Using doxygen 1.7.6.1.

Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>doc: Removed \ref when it refers to the subject the text is attached to</title>
<updated>2014-11-25T14:38:59Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2014-11-12T02:43:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=dfdb0878264b72d49c263b87952f9fec85e278c2'/>
<id>urn:sha1:dfdb0878264b72d49c263b87952f9fec85e278c2</id>
<content type='text'>
This does not make a difference to doxygen output but may help other
document generators not make redundant links.

Reviewed-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>doc: fixed a typo</title>
<updated>2014-11-25T14:38:11Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2014-11-12T02:43:01Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f73f76775fa034e8a5f7b6347f38880df3d94e91'/>
<id>urn:sha1:f73f76775fa034e8a5f7b6347f38880df3d94e91</id>
<content type='text'>
Reviewed-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>v4 doc: fixed reference to non-existent function</title>
<updated>2014-11-25T14:36:57Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2014-11-13T22:46:51Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5e79171cf16de84ee8e89b3fd3af4d39dcbd4171'/>
<id>urn:sha1:5e79171cf16de84ee8e89b3fd3af4d39dcbd4171</id>
<content type='text'>
(Fixed to remove accidental commit of another change)

After some feedback from Marek Chalupa I decided to just remove this. There
were suggestions about warning about multiple threads but it appears this
would be true for many of these functions and thus it would be misleading to
mention multiple threads only here (as it would imply that multiple threads
work for other functions which is not true, I think).

Acked-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: Added \code tags around sample code in doxygen comments</title>
<updated>2014-11-25T14:27:57Z</updated>
<author>
<name>Bill Spitzak</name>
<email>spitzak@gmail.com</email>
</author>
<published>2014-11-12T02:42:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=40aa80a4082975d1598f4896a751c0562be9016b'/>
<id>urn:sha1:40aa80a4082975d1598f4896a751c0562be9016b</id>
<content type='text'>
Also removed \comment and used C++ comments. There does not appear
to be any other way to put comments into code samples.

Reviewed-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>server: increase listen queue to 128</title>
<updated>2014-11-24T14:32:35Z</updated>
<author>
<name>Imran Zaman</name>
<email>imran.zaman@gmail.com</email>
</author>
<published>2014-11-24T14:10:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=11560a8d15435b06633659266b23128426d02ffc'/>
<id>urn:sha1:11560a8d15435b06633659266b23128426d02ffc</id>
<content type='text'>
This will allow more than 1 simultaneous client connections to the server
without the possibility of connection refused error.

Signed-off-by: Imran Zaman &lt;imran.zaman@gmail.com&gt;

http://utcc.utoronto.ca/~cks/space/blog/unix/ListenBacklogMeaning
http://stackoverflow.com/questions/19221105/connect-with-unix-domain-socket-and-full-backlog
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: read_events should return -1 after an error</title>
<updated>2014-11-21T11:59:42Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-10-27T08:19:46Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=59f255d66e4dad89f633deec535482faa8bd8561'/>
<id>urn:sha1:59f255d66e4dad89f633deec535482faa8bd8561</id>
<content type='text'>
When a thread is sleeping, waiting until another thread read
from the display, it always returns 0. Even when an error
occured. In documentation stands:

  "return 0 on success or -1 on error.  In case of error errno will
   be set accordingly"

So this is a fix for this.

Along with the read_events, fix a test so that it now complies
with this behaviour (and we have this tested)

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>gitignore: adpat to scanner and protocol path changes</title>
<updated>2014-11-19T14:35:49Z</updated>
<author>
<name>Olivier Blin</name>
<email>olivier.blin@softathome.com</email>
</author>
<published>2014-10-22T16:44:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=059220549cd080bae970a802856b2c44b2eeb3cc'/>
<id>urn:sha1:059220549cd080bae970a802856b2c44b2eeb3cc</id>
<content type='text'>
Since commit 4c163b9b001bd93aaf97d7e962873a379eb90bfd, wayland-scanner
is built in top builddir instead of src, and protocol files are
generated in protocol subdir instead of src.
Protocol files generated in the new path are already properly ignored
in the toplevel gitignore file.

Signed-off-by: Olivier Blin &lt;olivier.blin@softathome.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>connection: abort if a listener function is NULL</title>
<updated>2014-11-12T12:00:38Z</updated>
<author>
<name>Ryo Munakata</name>
<email>ryomnktml@gmail.com</email>
</author>
<published>2014-10-01T12:17:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=47c752ad82d4475d6f4f605423c93bb29e679bf8'/>
<id>urn:sha1:47c752ad82d4475d6f4f605423c93bb29e679bf8</id>
<content type='text'>
Signed-off-by: Ryo Munakata &lt;ryomnktml@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>Remove useless semicolon.</title>
<updated>2014-11-12T10:48:06Z</updated>
<author>
<name>Carlos Olmedo Escobar</name>
<email>carlos.olmedo.e@gmail.com</email>
</author>
<published>2014-11-12T02:19:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9d327c579606cb05928d34bf7a33b2ff581a76fc'/>
<id>urn:sha1:9d327c579606cb05928d34bf7a33b2ff581a76fc</id>
<content type='text'>
Signed-off-by: Carlos Olmedo Escobar &lt;carlos.olmedo.e@gmail.com&gt;
Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: Added API documentation for wl_display_destroy and wl_display_add_socket functions.</title>
<updated>2014-11-11T11:30:02Z</updated>
<author>
<name>Srivardhan Hebbar</name>
<email>sri.hebbar@samsung.com</email>
</author>
<published>2014-10-15T09:21:27Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=754ce18135c778c378bd09b19d9e1e84a5578b07'/>
<id>urn:sha1:754ce18135c778c378bd09b19d9e1e84a5578b07</id>
<content type='text'>
Signed-off-by: Srivardhan Hebbar &lt;sri.hebbar@samsung.com&gt;
[Pekka Paalanen: minor re-wording.]
Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>Don't document an absent parameter.</title>
<updated>2014-11-11T10:41:44Z</updated>
<author>
<name>Bryce Harrington</name>
<email>bryce@osg.samsung.com</email>
</author>
<published>2014-10-30T07:52:39Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=94f1718c50588733c639a06e1d3f81228da23eea'/>
<id>urn:sha1:94f1718c50588733c639a06e1d3f81228da23eea</id>
<content type='text'>
Quells a doxygen warning:

  src/wayland-server.c:790: warning: argument 'None' of command @param is
  not found in the argument list of wl_display::wl_display_create(void)

Signed-off-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>scanner, client: Added more error checks when strtol function is used</title>
<updated>2014-11-10T13:25:13Z</updated>
<author>
<name>Imran Zaman</name>
<email>imran.zaman@gmail.com</email>
</author>
<published>2014-11-05T15:40:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ff769d8faed7adb6747423a17fbdf11f87b67f64'/>
<id>urn:sha1:ff769d8faed7adb6747423a17fbdf11f87b67f64</id>
<content type='text'>
Signed-off-by: Imran Zaman &lt;imran.zaman@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>wayland-server: Abort if a read from a client gives 0 length</title>
<updated>2014-11-05T12:24:17Z</updated>
<author>
<name>Philip Withnall</name>
<email>philip@tecnocode.co.uk</email>
</author>
<published>2014-11-01T17:06:29Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a434b7ba8e1fb2f639736b79f6bff668256060b8'/>
<id>urn:sha1:a434b7ba8e1fb2f639736b79f6bff668256060b8</id>
<content type='text'>
This happens on EOF if using a poll function such as select() or
kqueue() which doesn’t distinguish EOF events.

Currently execution should never reach the point where recvmsg() returns
EOF (len == 0). Instead, epoll() will detect this and indicate EPOLLHUP,
which is handled a few lines above, closing the connection. However,
other event mechanisms may not be able to distinguish EOF from regular
readability (in the case of select()) or inconsistently across platforms
(in the case of POLLHUP). There is also the possibility of half-closed
connections (shutdown(), POLLRDHUP), though this may not be an issue
with Wayland.

This will not cause problems if the FD polls as readable but actually is
not — in that case, recvmsg() will return EAGAIN.

Signed-off-by: Philip Withnall &lt;philip at tecnocode.co.uk&gt;
Signed-off-by: Karsten Otto &lt;ottoka at posteo.de&gt;
Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>event-loop.c: Use correct OS abstraction function for dupfd()</title>
<updated>2014-11-05T12:17:25Z</updated>
<author>
<name>Philip Withnall</name>
<email>philip@tecnocode.co.uk</email>
</author>
<published>2014-11-01T17:06:38Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b096693bef569ce463b5444ce654e62293978f8c'/>
<id>urn:sha1:b096693bef569ce463b5444ce654e62293978f8c</id>
<content type='text'>
Signed-off-by: Philip Withnall &lt;philip at tecnocode.co.uk&gt;
Signed-off-by: Karsten Otto &lt;ottoka at posteo.de&gt;
Reviewed-by: David Fort &lt;contact at hardening-consulting.com&gt;
Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>connection: Fix sendmsg() on FreeBSD</title>
<updated>2014-11-05T12:13:50Z</updated>
<author>
<name>Philip Withnall</name>
<email>philip@tecnocode.co.uk</email>
</author>
<published>2014-11-03T09:49:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=cb00e27039d3b1b4475150b2468066adb99984dc'/>
<id>urn:sha1:cb00e27039d3b1b4475150b2468066adb99984dc</id>
<content type='text'>
It expects ((msg_controllen == 0) == (msg_control == NULL)), and returns
EINVAL otherwise. It can't hurt to be tidy about things on other platforms
either though.

See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=99356#c5

Signed-off-by: Philip Withnall &lt;philip at tecnocode.co.uk&gt;
Signed-off-by: Karsten Otto &lt;ottoka at posteo.de&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>cosmetic: convert some function returns from int to bool</title>
<updated>2014-11-04T11:01:58Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2014-10-03T19:39:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=322cd6dded6db0f82e04c2b7ac9d5eb073e41ebc'/>
<id>urn:sha1:322cd6dded6db0f82e04c2b7ac9d5eb073e41ebc</id>
<content type='text'>
[Pekka Paalanen: change is_nullable_type() return value to bool.]

Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>connection: Leave fd open in wl_connection_destroy</title>
<updated>2014-11-04T09:26:22Z</updated>
<author>
<name>Benjamin Herr</name>
<email>ben@0x539.de</email>
</author>
<published>2014-09-30T12:43:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=391820b0d6d9fcd99e12cd32623a476da64c89ce'/>
<id>urn:sha1:391820b0d6d9fcd99e12cd32623a476da64c89ce</id>
<content type='text'>
Calling close() on the same file descriptor that a previous call to
close() already closed is wrong, and racy if another thread received
that same file descriptor as a eg. new socket or actual file.

There are two situations where wl_connection_destroy() would close its
file descriptor and then another function up in the call chain would
close the same file descriptor:

  * When wl_client_create() fails after calling wl_connection_create(),
    it will call wl_connection_destroy() before returning. However, its
    caller will always close the file descriptor if wl_client_create()
    fails.

  * wl_display_disconnect() unconditionally closes the display file
    descriptor and also calls wl_connection_destroy().

So these two seem to expect wl_connection_destroy() to leave the file
descriptor open. The other caller of wl_connection_destroy(),
wl_client_destroy(), does however expect wl_connection_destroy() to
close its file descriptor, alas.

This patch changes wl_connection_destroy() to indulge this majority of
two callers by simply not closing the file descriptor. For the benefit
of wl_client_destroy(), wl_connection_destroy() then returns the
unclosed file descriptor so that wl_client_destroy() can close it
itself.

Since wl_connection_destroy() is a private function called from few
places, changing its semantics seemed like the more expedient way to
address the double-close() problem than shuffling around the logic in
wl_client_create() to somehow enable it to always avoid calling
wl_connection_destroy().

Signed-off-by: Benjamin Herr &lt;ben@0x539.de&gt;
Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>doc: Mark up some code examples</title>
<updated>2014-11-03T13:09:06Z</updated>
<author>
<name>Benjamin Herr</name>
<email>ben@0x539.de</email>
</author>
<published>2014-09-29T15:26:11Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5b353ad44d15d416a78b0bcea9114cb3c27f7a6e'/>
<id>urn:sha1:5b353ad44d15d416a78b0bcea9114cb3c27f7a6e</id>
<content type='text'>
These blocks were misformatted in normal paragraph style in the
generated docs. Also, added \comment{} for comments within one code
example.

Signed-off-by: Benjamin Herr &lt;ben@0x539.de&gt;
</content>
</entry>
<entry>
<title>scanner: Remove stray newline</title>
<updated>2014-09-23T08:40:46Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2014-09-22T20:11:19Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9dba854547ebdf78276e15003b89f404998c4fca'/>
<id>urn:sha1:9dba854547ebdf78276e15003b89f404998c4fca</id>
<content type='text'>
Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>scanner: Improve XML parse error reporting</title>
<updated>2014-09-23T08:40:46Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2014-09-22T20:11:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2028227acc4fe08836706278698acf1c09851fa1'/>
<id>urn:sha1:2028227acc4fe08836706278698acf1c09851fa1</id>
<content type='text'>
Print the parse error and exit with a failure if expat can't parse the
XML.

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>shm: fix error in comment</title>
<updated>2014-09-11T08:46:45Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2014-09-10T18:46:09Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4d7dfa0867d7661c86b717998ea96a0f2987cee2'/>
<id>urn:sha1:4d7dfa0867d7661c86b717998ea96a0f2987cee2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>client: cancel read in wl_display_read_events() when last_error is set</title>
<updated>2014-09-11T08:41:58Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-09-10T10:47:14Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=083d8da432b2052db78f0a19405275c2b4391b5a'/>
<id>urn:sha1:083d8da432b2052db78f0a19405275c2b4391b5a</id>
<content type='text'>
Calling wl_display_read_events() after an error should be equivalent
to wl_display_cancel_read(), so that display state is consistent.

Thanks to Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
for pointing that out.

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: wake-up threads on all return paths from read_events</title>
<updated>2014-09-11T07:22:44Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-09-10T10:47:13Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a31a7360093dd5f4ce1a34b9889560fc37dbb7a9'/>
<id>urn:sha1:a31a7360093dd5f4ce1a34b9889560fc37dbb7a9</id>
<content type='text'>
If wl_connection_read returned EAGAIN, we must wake up sleeping
threads. If we don't do this and the thread calling
wl_connection_read won't call wl_display_read_events again,
the sleeping threads will sleep indefinitely.

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: add display_wakeup_threads function</title>
<updated>2014-09-04T12:32:41Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-29T09:21:28Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1e0f9698d44fb7a72c27ac41b8e360d47734dcd2'/>
<id>urn:sha1:1e0f9698d44fb7a72c27ac41b8e360d47734dcd2</id>
<content type='text'>
This helper function wraps the always-repeated pattern:

  display-&gt;read_serial++;
  pthread_cond_broadcast(&amp;display-&gt;reader_cond);

[Pekka Paalanen: minor whitespace and comment fixes.]

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>wayland-client: Initialize newly created wl_proxys to zero</title>
<updated>2014-09-04T12:05:41Z</updated>
<author>
<name>Nils Chr. Brause</name>
<email>nilschrbrause@gmail.com</email>
</author>
<published>2014-08-30T15:12:26Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5c7d30b691d9bcc891b9a7e2c7e677d1a498b523'/>
<id>urn:sha1:5c7d30b691d9bcc891b9a7e2c7e677d1a498b523</id>
<content type='text'>
Up until now, newly created wl_proxys (with proxy_create or
wl_proxy_create_for_id) are not initialized properly after memory
allocation. The wl_display object in contrast is. To prevent giving
uninitialized data to the user (e.g. user_data) an appropriate memset
has been added. Also, after a memset members don't have to be
explicitly initialized with zero anymore.

Signed-off-by: Nils Chr. Brause &lt;nilschrbrause@googlemail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: check for error in wl_display_read_events</title>
<updated>2014-08-22T12:33:49Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-22T12:28:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8c061d1b7e4fcdfe8d12887720ef129b8f921139'/>
<id>urn:sha1:8c061d1b7e4fcdfe8d12887720ef129b8f921139</id>
<content type='text'>
This prevents from blocking shown in one display test. Also, it
makes sense to not proceed further in the code of the function
when an error ocurred.

v2. set errno
    put note about the errno into wl_display_prepare_read doc
    check for error with mutex locked

v3.
    set errno to display-&gt;last_error

    check for the error only in wl_display_read_events. It's sufficient
    as prevention for the hanging and programmer doesn't need to
    check if wl_display_prepare_read (that was previously covered by
    this patch too) returned an error or the queue just was not empty.
    Without the check, it could result in indefinite looping.

Thanks to Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt; for
constant reviewing and discussing this patch.

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: broadcast the right pthread_cond variable</title>
<updated>2014-08-22T12:01:05Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-05T09:42:01Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=574b710ef8da766019a406801893937a6df9357c'/>
<id>urn:sha1:574b710ef8da766019a406801893937a6df9357c</id>
<content type='text'>
In previous commit we removed unused variables. One of them was
pthread_cond_t that was formerly used when reading from display, but
later was (erroneously) made unused. This patch fixes this error
and is a fix for the failing test introduced few patches ago (tests:
test if thread can block on error)

Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: drop unused event queue cond and list variables</title>
<updated>2014-08-22T12:00:54Z</updated>
<author>
<name>Olivier Blin</name>
<email>olivier.blin@softathome.com</email>
</author>
<published>2014-08-21T14:54:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0cb9862c938f754dbda5394c56ac09dae3a20201'/>
<id>urn:sha1:0cb9862c938f754dbda5394c56ac09dae3a20201</id>
<content type='text'>
The wl_event_queue cond variable has been replaced by the wl_display
reader_cond variable (commit 3c7e8bfbb4745315b7bcbf69fa746c3d6718c305).
This cond variable is never waited for anymore, just
signaled/broadcasted, and thus can be safely removed.

The wl_display event_queue_list and link from wl_event_queue
can be removed as well, since it was only used to iterate over
the event queue list in order to broadcast the now unused cond.

No regression on queue unit tests.

Signed-off-by: Olivier Blin &lt;olivier.blin@softathome.com&gt;

v2: fixed and rebased after 886b09c9a3a9d8672039f09fe7eaf3f2b2b012ca
    added signed-off-by

v3: removed link from wl_event_queue

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: remove unused variable</title>
<updated>2014-08-21T11:45:03Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-21T10:07:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ded9bb1f8b30c5c38bc8170ef99f33857302121a'/>
<id>urn:sha1:ded9bb1f8b30c5c38bc8170ef99f33857302121a</id>
<content type='text'>
display_thread variable is unused since
3c7e8bfbb4745315b7bcbf69fa746c3d6718c305

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>server: Don't expose wl_display as a global</title>
<updated>2014-08-21T10:51:07Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-08-07T13:55:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=78d80474073b6145f6f03dd4928c3a4daf9c6b9c'/>
<id>urn:sha1:78d80474073b6145f6f03dd4928c3a4daf9c6b9c</id>
<content type='text'>
The idea here was that once upon a time, clients could rebind wl_display
to a higher version, so we offered the ability to rebind it
here. However, this is particularly broken. The existing bind
implementation actually still hardcodes version numbers, and it leaks
previous resources, overwriting the existing one.

The newly bound resource *also* won't have any listeners attached by the
client, meaning that the error and delete_id events won't get delivered
correctly. Unless the client poked into libwayland internals, it also
can't possibly set up these handlers correctly either, so the client
will sustain errors and leak all deleted globals.

Since this never worked correctly in the first place, we can feel safe
removing it.

Acked-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>client: add a public function to make a roundtrip on a custom queue</title>
<updated>2014-08-21T07:12:46Z</updated>
<author>
<name>Giulio Camuffo</name>
<email>giuliocamuffo@gmail.com</email>
</author>
<published>2014-08-20T16:29:09Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=77dd068d422fdc82279cd4165fb7f3e29f35e33d'/>
<id>urn:sha1:77dd068d422fdc82279cd4165fb7f3e29f35e33d</id>
<content type='text'>
wl_display_roundtrip() works on the default queue. Add a parallel
wl_display_roundtrip_queue().

Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>event-loop: make signalfd non-blocking</title>
<updated>2014-08-18T10:03:00Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-12T09:35:06Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f2338c8f3beb069d3fa7e4ba0d56be1cc6e065f5'/>
<id>urn:sha1:f2338c8f3beb069d3fa7e4ba0d56be1cc6e065f5</id>
<content type='text'>
When we add more that one source to a signal, then wayland will
block in wl_event_loop_dispatch. This is due to the attampt to read
from signal's fd each time the source is dispatched.

  wl_event_loop_add_signal(loop, SIGINT, ...);
  wl_event_loop_add_signal(loop, SIGINT, ...);

  /* raise signal .. */

  /* we got two fd's ready, both for the one SIGINT */
  epoll_wait(...) = 2

  [ for (i == 0) ]
      source1-&gt;dispatch() --&gt; read(fd1);
  [ for (i == 1) ]
      source2-&gt;dispatch() --&gt; read(fd2); /* blocking! */

Reading from fd2 will block, because we got only one signal,
and it was read from fd1.

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>scanner: Make emit_structs more explicit</title>
<updated>2014-08-18T08:31:48Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-08-08T22:22:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=edddb0f58ebe14a3cff93d85919af671f17612b4'/>
<id>urn:sha1:edddb0f58ebe14a3cff93d85919af671f17612b4</id>
<content type='text'>
"is_interface" is a really terrible name for the client or server
variants, and instead of checking whether we were passed the requests or
the events, just pass an argument through.

Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>scanner: Use an enum to determine the type of thing we're writing out</title>
<updated>2014-08-18T08:22:33Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-08-08T22:22:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=eb223cc2f606f4a8641efbd0ef0d0af223dc9216'/>
<id>urn:sha1:eb223cc2f606f4a8641efbd0ef0d0af223dc9216</id>
<content type='text'>
Reviewed-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>server: fix conditions for fds in wl_socket_destroy</title>
<updated>2014-08-07T13:59:14Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>pekka.paalanen@collabora.co.uk</email>
</author>
<published>2014-08-07T13:46:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ced769ac92c96c4ef8dab585b02c9d211482b5ee'/>
<id>urn:sha1:ced769ac92c96c4ef8dab585b02c9d211482b5ee</id>
<content type='text'>
0 is also a valid fd, and needs to be closed.

On error we set fd to -1. We need to also initialize fds to -1, so we do
not accidentally close stdout on error.

While fixing this, also remove one use-before-NULL-check.

Based on the patch by Marek.

Cc: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Jasper St. Pierre &lt;jstpierre@mecheye.net&gt;
</content>
</entry>
<entry>
<title>server: fix error handling when adding socket</title>
<updated>2014-08-07T13:04:24Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-06T09:21:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3a84e45a3043a0025ecfd5f1a496fafac95fd01f'/>
<id>urn:sha1:3a84e45a3043a0025ecfd5f1a496fafac95fd01f</id>
<content type='text'>
When some function during adding socket fails, it must clean
everything it set or we can get funky errors.

This patch fixes:
http://lists.freedesktop.org/archives/wayland-devel/2014-August/016331.html

Signed-off-by: Marek Chalupa &lt;mchqwerty@gmail.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>server: move memset after check</title>
<updated>2014-08-07T13:03:39Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-08-06T09:28:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a92efe9ad6cf29c42fabcc3379e3826b18c0454f'/>
<id>urn:sha1:a92efe9ad6cf29c42fabcc3379e3826b18c0454f</id>
<content type='text'>
If the malloc fails, memset would touch invalid memory.

Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>server: Add a simple API to find a good default display</title>
<updated>2014-08-05T19:43:00Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T15:01:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=e2c0d47b0c77f18cd90e9c6eabb358c4d89681c8'/>
<id>urn:sha1:e2c0d47b0c77f18cd90e9c6eabb358c4d89681c8</id>
<content type='text'>
This allows compositors to easily select a good display to listen on.
</content>
</entry>
<entry>
<title>server: Save the display name in the wl_socket</title>
<updated>2014-08-05T19:43:00Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T15:25:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f0401059b9927b0f4c9ac765ec00814ea19c1ee9'/>
<id>urn:sha1:f0401059b9927b0f4c9ac765ec00814ea19c1ee9</id>
<content type='text'>
This allows us to return the display name to the client in a new API.
</content>
</entry>
<entry>
<title>server: Make get_socket_lock operate directly on the socket's lock_fd</title>
<updated>2014-08-05T19:43:00Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T14:57:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7ec34fd0970ccf8d5d5f28753343e0c9bf45c5b0'/>
<id>urn:sha1:7ec34fd0970ccf8d5d5f28753343e0c9bf45c5b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>server: Split out code to initialize the socket address for a display name</title>
<updated>2014-08-05T19:43:00Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T14:25:13Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=79b1d2039aeb77b712cf4e1bb4049ebf9c453b59'/>
<id>urn:sha1:79b1d2039aeb77b712cf4e1bb4049ebf9c453b59</id>
<content type='text'>
We'll use this to autodetect a good socket to open on.
</content>
</entry>
<entry>
<title>server: Create the socket FD after taking the lock</title>
<updated>2014-08-05T19:42:59Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T14:24:06Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6e8a6624030df0ac7656f8743ca537c1414ada0f'/>
<id>urn:sha1:6e8a6624030df0ac7656f8743ca537c1414ada0f</id>
<content type='text'>
We're going to split out the lock-taking to another function so we
can repetitively try locks.
</content>
</entry>
<entry>
<title>server: Clean up socket destruction</title>
<updated>2014-08-05T19:42:59Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-05-08T14:22:25Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=68dd7d1f5fa558bd0797bc6e24517ff1936bdc95'/>
<id>urn:sha1:68dd7d1f5fa558bd0797bc6e24517ff1936bdc95</id>
<content type='text'>
The code here is wrong, leaky, and inconsistent. We don't free,
unlink or clean up things when we should in every error path.

Centralize the data destruction so it's easier to keep track of
and easier to bug fix.
</content>
</entry>
<entry>
<title>wayland-client: Fix indentation</title>
<updated>2014-08-05T19:29:01Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-08-05T19:21:36Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=34dfdb4ee32e052831a32987357bb72887045cb0'/>
<id>urn:sha1:34dfdb4ee32e052831a32987357bb72887045cb0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>doc: Fix link to wl_list_remove()</title>
<updated>2014-07-25T04:15:05Z</updated>
<author>
<name>Bryce W. Harrington</name>
<email>b.harrington@samsung.com</email>
</author>
<published>2014-07-25T00:35:40Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=bf24e1e225d4437e1d06a3149d243e5bd7622e96'/>
<id>urn:sha1:bf24e1e225d4437e1d06a3149d243e5bd7622e96</id>
<content type='text'>
Use function linking syntax instead of variable linking, to resolve two
warnings:

    wayland-server.h:167: warning: explicit link request to 'wl_list_remove' could not be resolved
    wayland-server.h:188: warning: explicit link request to 'wl_list_remove' could not be resolved

Signed-off-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>client: extend error handling</title>
<updated>2014-07-07T14:13:21Z</updated>
<author>
<name>Marek Chalupa</name>
<email>mchqwerty@gmail.com</email>
</author>
<published>2014-06-20T07:29:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=886b09c9a3a9d8672039f09fe7eaf3f2b2b012ca'/>
<id>urn:sha1:886b09c9a3a9d8672039f09fe7eaf3f2b2b012ca</id>
<content type='text'>
When an error occurs, wl_display_get_error() does not
provide any way of getting know if it was a local error or if it was
an error event, respectively what object caused the error and what
the error was.

This patch introduces a new function wl_display_get_protocol_error()
which will return error code, interface and id of the object that
generated the error.
wl_display_get_error() will work the same way as before.

wl_display_get_protocol_error() DOES NOT indicate that a non-protocol
error happened. It returns valid information only in that case that
(protocol) error occurred, so it should be used after calling
wl_display_get_error() with positive result.

[Pekka Paalanen] Applied another hunk of Bryce's comments to docs,
	added libtool version bump.

Reviewed-by: Pekka Paalanen &lt;ppaalanen@gmail.com&gt;
Reviewed-by: Bryce Harrington &lt;b.harrington@samsung.com&gt;
</content>
</entry>
<entry>
<title>connection: remove unreached code</title>
<updated>2014-06-19T00:13:31Z</updated>
<author>
<name>Boyan Ding</name>
<email>stu_dby@126.com</email>
</author>
<published>2014-06-04T03:39:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=113aac5afbcce446e65d3d309a0e200b39c9e7ff'/>
<id>urn:sha1:113aac5afbcce446e65d3d309a0e200b39c9e7ff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scanner: Downgrade non-increasing version error to warning</title>
<updated>2014-05-12T22:35:04Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-05-12T22:17:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8511544e6be4385a87d2111c87f7f397c63c43ff'/>
<id>urn:sha1:8511544e6be4385a87d2111c87f7f397c63c43ff</id>
<content type='text'>
Commit 99a72777f96f63e4e25dc528bb37115424adac59 introduced a new error
for when the 'since' version decreases.  It also reset the version for
messages without a version to 1.  Versioning semantics in the spec files
was a little under-specified and we don't want to break projects caught in
this grey zone.

This commits replaces previous configure.ac as the 1.4.93 tag and the
final 1.5 RC.
</content>
</entry>
<entry>
<title>scanner: Generate macros for getting the 'since' version of an event</title>
<updated>2014-05-09T21:33:20Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2014-05-08T21:39:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=35be5a7c65a47e3547c5b6250141e135ee109a6d'/>
<id>urn:sha1:35be5a7c65a47e3547c5b6250141e135ee109a6d</id>
<content type='text'>
This could be useful for compositors who need to be able to not send
events if the client bound a version lower than the newest provided.

Event version numbers are exposed as
[INTERFACE_NAME]_[EVENT_NAME]_SINCE_VERSION for example wl_output.scale
will have the version macro WL_OUTPUT_SCALE_SINCE_VERSION.

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>scanner: Also fail when an implicitly versioned message is out of order</title>
<updated>2014-05-09T21:31:28Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2014-05-08T21:39:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=99a72777f96f63e4e25dc528bb37115424adac59'/>
<id>urn:sha1:99a72777f96f63e4e25dc528bb37115424adac59</id>
<content type='text'>
Fail if a message with version implicitly set to 1 (i.e. not specified)
comes after a message with since-version &gt; 1.

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: Added API documentation for wl_display_create function.</title>
<updated>2014-05-09T19:44:32Z</updated>
<author>
<name>Srivardhan Hebbar</name>
<email>sri.hebbar@samsung.com</email>
</author>
<published>2014-05-07T04:07:45Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=cde83a24b3f0c706b20979ee81d1520ad4fc183e'/>
<id>urn:sha1:cde83a24b3f0c706b20979ee81d1520ad4fc183e</id>
<content type='text'>
Signed-off-by: Srivardhan Hebbar &lt;sri.hebbar@samsung.com&gt;
</content>
</entry>
<entry>
<title>server: fix potential memleak and NULL deref</title>
<updated>2014-05-06T22:00:31Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-05-05T23:28:26Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0f23b73a0641461884a9a8d626ce087d76406840'/>
<id>urn:sha1:0f23b73a0641461884a9a8d626ce087d76406840</id>
<content type='text'>
If for some reason that errno is neither value (ENOMEM or
EINVAL), then prior to this patch, there would be a NULL
deref in wl_closure_lookup(...) at the "else if" conditional
when closure == NULL. Also, closure might not be NULL but still
fall into the block due to the wl_closure_lookup &lt; 0 condition...
in that case, we need to destroy the closure to avoid a memory
leak.

Currently, wl_connection_demarshal only sets errno to ENOMEM
or EINVAL... we've already checked for ENOMEM so remove check
for EINVAL (just assume it).  Also, call wl_closure_destroy(...)
unconditionally in the "else if" block (assume it can handle
NULL closure, too, which it does right now).

Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>scanner: check wl_array_add result</title>
<updated>2014-05-06T21:57:35Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-05-05T21:45:19Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7a17b051876d475fb7cd39e9e16f2a61e241a4ad'/>
<id>urn:sha1:7a17b051876d475fb7cd39e9e16f2a61e241a4ad</id>
<content type='text'>
Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>Avoid printing to stderr</title>
<updated>2014-04-30T19:18:52Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-04-30T19:18:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=88f3bd84c8ea8f0b3526f970388ef76baa231fe2'/>
<id>urn:sha1:88f3bd84c8ea8f0b3526f970388ef76baa231fe2</id>
<content type='text'>
Use wl_log in the last few places where we print to stderr.  Remove
logging in a couple of places where we properly return an error code.

https://bugs.freedesktop.org/show_bug.cgi?id=73339
</content>
</entry>
<entry>
<title>Use non-blocking timerfd to prevent blocking when updating timer event sources</title>
<updated>2014-04-25T21:38:22Z</updated>
<author>
<name>Andrew Wedgbury</name>
<email>andrew.wedgbury@realvnc.com</email>
</author>
<published>2014-04-25T14:00:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3e962728bf547de6316b5a01f40b38e55d3871cf'/>
<id>urn:sha1:3e962728bf547de6316b5a01f40b38e55d3871cf</id>
<content type='text'>
This implements a simple fix for the blocking problem that occurs when
updating a timer event source after the timer expires, but before its
callback is dispatched. This can happen when another event happens during the
same epoll wakeup as the timer event, and causes the read() call in
wl_event_source_timer_dispatch() to block for the updated duration of the
timer.

We never want this read() call to block, so I believe it makes sense for the
timerfd to be non-blocking, and we simply ignore the case where the read fails
with EAGAIN. We still report all other errors as before, and still ignore the
actual value read from the socket.

With this change, the event_loop_timer_updates unit test case I submitted
previously now passes, and weston appears to work as before.
</content>
</entry>
<entry>
<title>connection: fix a format string typo in error message</title>
<updated>2014-04-25T20:28:19Z</updated>
<author>
<name>Giulio Camuffo</name>
<email>giuliocamuffo@gmail.com</email>
</author>
<published>2014-04-22T13:03:12Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5535757a40e207c81460c4119097a697a245f4c5'/>
<id>urn:sha1:5535757a40e207c81460c4119097a697a245f4c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>connection: Don't write past the end of the connection buffer</title>
<updated>2014-04-21T21:51:42Z</updated>
<author>
<name>Ander Conselvan de Oliveira</name>
<email>ander.conselvan.de.oliveira@intel.com</email>
</author>
<published>2014-04-17T15:20:37Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=bfc93649cbb48bb71bdcf77bffc41eba43d7383f'/>
<id>urn:sha1:bfc93649cbb48bb71bdcf77bffc41eba43d7383f</id>
<content type='text'>
If a message was too big to fit in the connection buffer, the code
in wl_buffer_put would just write past the end of it.

I haven't seen any real world use case that would trigger this bug, but
it was possible to trigger it by sending a long enough string to the
wl_data_source.offer request.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69267
</content>
</entry>
<entry>
<title>shm: Disallow shrinking shm pools</title>
<updated>2014-04-07T23:01:25Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-04-07T21:42:20Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=24cdbe3d69763708dcd156edfbe7aa8d00bab860'/>
<id>urn:sha1:24cdbe3d69763708dcd156edfbe7aa8d00bab860</id>
<content type='text'>
Unused shm space will be automatically reclaimed if unused or can be
explicitly returned by using fallocate FALLOC_FL_PUNCH_HOLE.

https://bugs.freedesktop.org/show_bug.cgi?id=74632
</content>
</entry>
<entry>
<title>scanner: Only output each forward declaration once</title>
<updated>2014-04-03T22:58:06Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-04-03T22:57:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c1aa1291a10eb63b41df27ecc53569e194f128d1'/>
<id>urn:sha1:c1aa1291a10eb63b41df27ecc53569e194f128d1</id>
<content type='text'>
Just sort the types and only print unique type names.  We avoid using
the GCC pragma.
</content>
</entry>
<entry>
<title>Add WL_PRINTF attribute and annotate wl_log_func_t</title>
<updated>2014-04-03T21:18:45Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-04-03T21:18:45Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=00703ad2bc9a69f068b0eee3fdcea7432b130bef'/>
<id>urn:sha1:00703ad2bc9a69f068b0eee3fdcea7432b130bef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>client: Delay EPIPE handling so we get a chance to handle error events</title>
<updated>2014-03-26T20:28:27Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-03-26T20:28:27Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=051f3838de9959087bc0a0ba76d3737588a1f67f'/>
<id>urn:sha1:051f3838de9959087bc0a0ba76d3737588a1f67f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>server: Kill some unnecessary logs</title>
<updated>2014-03-25T16:50:09Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-02-23T23:51:31Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1bf13ae918bbdc8b95f0cdf026e85818f7d544f5'/>
<id>urn:sha1:1bf13ae918bbdc8b95f0cdf026e85818f7d544f5</id>
<content type='text'>
In order to set a logging function all the time, the output we get
needs to be useful. Logging about trivial things like the socket
we're using and when clients disconnect doesn't realy help anyone.
</content>
</entry>
<entry>
<title>build: Move src/Makefile.am into toplevel Makefile.am</title>
<updated>2014-03-07T19:50:59Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-03-07T07:45:56Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4c163b9b001bd93aaf97d7e962873a379eb90bfd'/>
<id>urn:sha1:4c163b9b001bd93aaf97d7e962873a379eb90bfd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>connection: Use wl_log to report errors</title>
<updated>2014-02-18T22:45:45Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-02-18T00:04:28Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=52a77fca573705b6ac9b0e23747feea83740ab2f'/>
<id>urn:sha1:52a77fca573705b6ac9b0e23747feea83740ab2f</id>
<content type='text'>
In some cases, like Xwayland, stdout and stderr are redirected to
/dev/null, losing us valuable information, while wl_log can be
overridden, allowing us to send it to a log file instead. This
can help debugging immensely.
</content>
</entry>
<entry>
<title>scanner: Add GCC pragmas to disable -Wredundant-decls</title>
<updated>2014-02-18T22:28:08Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-02-15T18:29:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=859b3e41f5529fefee5a5f866f257f8ae5def950'/>
<id>urn:sha1:859b3e41f5529fefee5a5f866f257f8ae5def950</id>
<content type='text'>
The code very intentionally emits a lot of redundant declarations
to simplify the scanner code. Somebody building with -Wredundant-decls
would have compile errors, so emit special pragmas to turn those
warnings off.

These pragmas should be ignored outside of gcc/clang.
</content>
</entry>
<entry>
<title>wayland-client: Set a proper errno</title>
<updated>2014-02-18T21:39:59Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2014-02-17T22:30:41Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ac188e9e44f5f852ec6163d269979f725ce73b57'/>
<id>urn:sha1:ac188e9e44f5f852ec6163d269979f725ce73b57</id>
<content type='text'>
errno is supposed to be positive, not negative. It seems that
everything else that calls display_fatal_error() calls it with
a positive error code, so do it here as well.
</content>
</entry>
<entry>
<title>client: Queue display events on private queue and always dispatch</title>
<updated>2014-02-08T00:50:50Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-02-08T00:50:50Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b9eebce0aa5559855d835e403ba3bb5960baaadc'/>
<id>urn:sha1:b9eebce0aa5559855d835e403ba3bb5960baaadc</id>
<content type='text'>
The wl_display events (error and delete_id) need to be handled even
if the default queue doesn't get dispatched for a while.  For example,
a busy EGL rendering loop hits wl_display.sync every eglSwapBuffers()
and we need to process the delete_id events to maintain the object ID
data structure.

As it is, that doesn't happen, but with this change we special case
wl_display events.  We put them on a custom, private queue and when
dispatching events, we always dispatch display_queue events first.
The wl_display proxy should still be the default_queue, so that objects
created from wl_display requests get assigned to that.
</content>
</entry>
<entry>
<title>client: Rename display-&gt;queue to default_queue</title>
<updated>2014-02-08T00:00:21Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-02-08T00:00:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a9eb563fb7aa194ac3a29f335d0a1ae3dcdb72ee'/>
<id>urn:sha1:a9eb563fb7aa194ac3a29f335d0a1ae3dcdb72ee</id>
<content type='text'>
We'll add a new queue next, so rename the default queue first.
</content>
</entry>
<entry>
<title>Make default log handler print to stderr</title>
<updated>2014-02-07T23:57:07Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2014-02-07T23:57:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a7524ed0d4cc4fcf8a0c5201618a4dfcd20f9499'/>
<id>urn:sha1:a7524ed0d4cc4fcf8a0c5201618a4dfcd20f9499</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Rename wl_debug to debug_server/client</title>
<updated>2014-02-06T04:54:33Z</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason@jlekstrand.net</email>
</author>
<published>2013-12-19T02:56:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8fd2520d80eb8e23486134c517ecc03b799ac79d'/>
<id>urn:sha1:8fd2520d80eb8e23486134c517ecc03b799ac79d</id>
<content type='text'>
Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
</content>
</entry>
<entry>
<title>Don't deref the sample pointer in the wl_container_of macro</title>
<updated>2014-02-06T01:21:43Z</updated>
<author>
<name>Neil Roberts</name>
<email>neil@linux.intel.com</email>
</author>
<published>2014-02-04T14:21:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a18e34417ba3fefeb81d891235e8ebf394a20a74'/>
<id>urn:sha1:a18e34417ba3fefeb81d891235e8ebf394a20a74</id>
<content type='text'>
The previous implementation of the wl_container_of macro was
dereferencing the sample pointer in order to get an address of the
member to calculate the offset. Ideally this shouldn't cause any
problems because the dereference doesn't actually cause the address to
be read from so it shouldn't matter if the pointer is uninitialised.
However this is probably technically invalid and could cause undefined
behavior. Clang appears to take advantage of this undefined behavior
and doesn't bother doing the subtraction. It also gives a warning when
it does this.

The documentation for wl_container_of implies that it should only be
given an initialised pointer and if that is done then there is no
problem with clang. However this is quite easy to forget and doesn't
cause any problems or warnings with gcc so it's quite easy to
accidentally break clang.

To fix the problem this changes the macro to use pointer -
offsetof(__typeof__(sample), member) so that it doesn't need to deref
the sample pointer. This does however require that the __typeof__
operator is supported by the compiler. In practice we probably only
care about gcc and clang and both of these happily support the
operator.

The previous implementation was also using __typeof__ but it had a
fallback path avoiding it when the operator isn't available. The
fallback effectively has undefined behaviour and it is targetting
unknown compilers so it is probably not a good idea to leave it in.
Instead, this patch just removes it. If someone finds a compiler that
doesn't have __typeof__ but does work with the old implementation then
maybe they could add it back in as a special case.

This patch removes the initialisation anywhere where the sample
pointer was being unitialised before using wl_container_of. The
documentation for the macro has also been updated to specify that this
is OK.
</content>
</entry>
<entry>
<title>client: Include poll.h instead of sys/poll.h</title>
<updated>2014-01-17T19:27:26Z</updated>
<author>
<name>Jonas 'Sortie' Termansen</name>
<email>sortie@maxsi.org</email>
</author>
<published>2014-01-14T17:38:59Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ed139ddcd79c4aec0beb98de1af5e82f0c6699aa'/>
<id>urn:sha1:ed139ddcd79c4aec0beb98de1af5e82f0c6699aa</id>
<content type='text'>
POSIX mandates the poll.h header as the standard location of poll(2).
</content>
</entry>
<entry>
<title>add_shm_format: check wl_array_add return value before deref</title>
<updated>2014-01-15T18:46:09Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-01-14T17:18:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=32b2baaf511b982b5af1555b511a2b2abaf7ae7d'/>
<id>urn:sha1:32b2baaf511b982b5af1555b511a2b2abaf7ae7d</id>
<content type='text'>
In wl_display_add_shm_format(), check the return value from
wl_array_add() before dereferencing it and assigning it a value.
Return the resulting pointer back to the caller.

Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>shm: assert sigbus_data is not NULL before member access</title>
<updated>2014-01-15T18:46:08Z</updated>
<author>
<name>U. Artie Eoff</name>
<email>ullysses.a.eoff@intel.com</email>
</author>
<published>2014-01-10T19:26:27Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f97df69ee2b8981533358b6f62fadb8c0e18a278'/>
<id>urn:sha1:f97df69ee2b8981533358b6f62fadb8c0e18a278</id>
<content type='text'>
Signed-off-by: U. Artie Eoff &lt;ullysses.a.eoff@intel.com&gt;
</content>
</entry>
<entry>
<title>Fix buffer overflow when serializing a closure object</title>
<updated>2014-01-09T22:27:52Z</updated>
<author>
<name>chi ding</name>
<email>chi.ding@mobica.com</email>
</author>
<published>2013-12-05T13:28:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c102c20f01c84abde71b7f208aae9b232226da1e'/>
<id>urn:sha1:c102c20f01c84abde71b7f208aae9b232226da1e</id>
<content type='text'>
Here is the JIRA page of this issue
https://bugs.tizen.org/jira/browse/TIVI-1889

Change-Id: I773a6d2d8f6fd02ff10c92450db1fa8a69544219
Signed-off-by: Chi Ding &lt;chi.ding@mobica.com&gt;
Closes: https://bugs.freedesktop.org/show_bug.cgi?id=65186
</content>
</entry>
<entry>
<title>scanner: set errno=0 before strtol</title>
<updated>2013-12-17T18:57:52Z</updated>
<author>
<name>Adrian Negreanu</name>
<email>adrian.m.negreanu@intel.com</email>
</author>
<published>2013-12-17T11:48:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=cd0dccd01e16fa404e03974d30ded3aebdb1c4bc'/>
<id>urn:sha1:cd0dccd01e16fa404e03974d30ded3aebdb1c4bc</id>
<content type='text'>
POSIX says to set errno=0 before calling strtol since
the return value alne cannot tell a failure.

on ubuntu armel I get:

  ../src/wayland-scanner client-header &lt; ../../protocol/wayland.xml &gt; wayland-client-protocol.h
  &lt;stdin&gt;:1188: error: invalid integer (2)

Signed-off-by: Adrian Negreanu &lt;adrian.m.negreanu@intel.com&gt;
</content>
</entry>
<entry>
<title>client: Handle EINTR in wl_display_dispatch_queue()</title>
<updated>2013-12-10T00:19:33Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2013-12-09T23:49:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1a58c7f2115a982a9156779bb6141acd303ddef5'/>
<id>urn:sha1:1a58c7f2115a982a9156779bb6141acd303ddef5</id>
<content type='text'>
Restart the poll() if we take a signal.  This is easily triggered in
an application that ends up blocking in eglSwapBuffers(), and causes EGL
to fail to allocate a back buffer.
</content>
</entry>
<entry>
<title>doc: Fix spelling of parameters</title>
<updated>2013-12-09T23:50:01Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2013-12-09T21:35:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=09877f3231623cca65ca08f3a3a694b2af495c80'/>
<id>urn:sha1:09877f3231623cca65ca08f3a3a694b2af495c80</id>
<content type='text'>
Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: Remove incorrect docmentation</title>
<updated>2013-12-09T23:43:04Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2013-12-09T21:35:21Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c30208f0b7ae964ad14546936d8320b61a506653'/>
<id>urn:sha1:c30208f0b7ae964ad14546936d8320b61a506653</id>
<content type='text'>
The documentation was about wl_client_get_object(), not about
wl_resource_get_client().

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
</content>
</entry>
<entry>
<title>client: Make wl_proxy_set_queue() with NULL revert to default queue</title>
<updated>2013-12-05T01:01:01Z</updated>
<author>
<name>Neil Roberts</name>
<email>neil@linux.intel.com</email>
</author>
<published>2013-12-05T00:58:39Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1521c62a31664d7372f5a987bd7f34574bd0c7d6'/>
<id>urn:sha1:1521c62a31664d7372f5a987bd7f34574bd0c7d6</id>
<content type='text'>
This will be useful in order to implement the
EGL_WL_create_wayland_buffer_from_image extension. The buffers created
within Mesa's Wayland platform are created using the the wl_drm object
as a proxy factory which means they will be set to use Mesa's internal
event queue. However, these buffers will be owned by the client
application so they ideally need to use the default event loop. This
function provides a way to set the proxy's event queue back to the
default.

krh: Edited from Neils original patch to just use wl_proxy_set_queue() with
a NULL argument instead of introducing a new function.
</content>
</entry>
<entry>
<title>Add -pthread to AM_CFLAGS to do the right thing when using threads</title>
<updated>2013-11-23T20:24:43Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2013-11-23T20:24:26Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5a019e38a1316a31072a9cb6de8da4377f3cfad5'/>
<id>urn:sha1:5a019e38a1316a31072a9cb6de8da4377f3cfad5</id>
<content type='text'>
https://bugs.freedesktop.org/show_bug.cgi?id=71633
</content>
</entry>
<entry>
<title>connection: Error out if file descriptor was not received</title>
<updated>2013-11-22T06:01:48Z</updated>
<author>
<name>Lubomir Rintel</name>
<email>lkundrak@v3.sk</email>
</author>
<published>2013-11-16T13:31:03Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=360dca517a8ae58f9709420b0570b4e36a1ffa3f'/>
<id>urn:sha1:360dca517a8ae58f9709420b0570b4e36a1ffa3f</id>
<content type='text'>
Otherwise the tail of fds_in buffer would just shift beyond the beginning.
That confuses the actual request handler and results in a crash further on
due to corrupted tail.

Signed-off-by: Lubomir Rintel &lt;lkundrak@v3.sk&gt;
</content>
</entry>
<entry>
<title>wayland-server: Improve error messages for bad globals</title>
<updated>2013-11-19T21:26:32Z</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2013-11-13T02:44:37Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=40d057f2c90eaeffd6185078b25a0e0ff861f2a8'/>
<id>urn:sha1:40d057f2c90eaeffd6185078b25a0e0ff861f2a8</id>
<content type='text'>
A bug in Weston's toytoolkit gave me an hour of debugging headaches.
Improve the error messages that we send if a client requests an invalid
global, either by name or by version.
</content>
</entry>
<entry>
<title>client: Introduce functions to allocate and marshal proxies atomically</title>
<updated>2013-11-16T04:49:36Z</updated>
<author>
<name>Kristian Høgsberg</name>
<email>krh@bitplanet.net</email>
</author>
<published>2013-11-15T05:29:06Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=853c24e6998f747150e4233cf41bfa8268964cc2'/>
<id>urn:sha1:853c24e6998f747150e4233cf41bfa8268964cc2</id>
<content type='text'>
The server requires clients to only allocate one ID ahead of the previously
highest ID in order to keep the ID range tight.  Failure to do so will
make the server close the client connection.  However, the way we allocate
new IDs is racy.  The generated code looks like:

  new_proxy = wl_proxy_create(...);
  wl_proxy_marshal(proxy, ... new_proxy, ...);

If two threads do this at the same time, there's a chance that thread A
will allocate a proxy, then get pre-empted by thread B which then allocates
a proxy and then passes it to wl_proxy_marshal().  The ID for thread As
proxy will be one higher that the currently highest ID, but the ID for
thread Bs proxy will be two higher.  But since thread B prempted thread A
before it could send its new ID, B will send its new ID first, the server
will see the ID from thread Bs proxy first, and will reject it.

We fix this by introducing wl_proxy_marshal_constructor().  This
function is identical to wl_proxy_marshal(), except that it will
allocate a wl_proxy for NEW_ID arguments and send it, all under the
display mutex.  By introducing a new function, we maintain backwards
compatibility with older code from the generator, and make sure that
the new generated code has an explicit dependency on a new enough
libwayland-client.so.

A virtual Wayland merit badge goes to Kalle Vahlman, who tracked this
down and analyzed the issue.

Reported-by: Kalle Vahlman &lt;kalle.vahlman@movial.com&gt;
</content>
</entry>
</feed>
