scanner: don't emit the extern declarations for external types
authorGiulio Camuffo <giuliocamuffo@gmail.com>
Thu, 28 May 2015 16:30:33 +0000 (19:30 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Mon, 1 Jun 2015 08:47:39 +0000 (11:47 +0300)
commitf0be757bfaf8cd43e89471ec7fa8f57093d38f81
tree41c84eab0a610b82adfa8a6701ba9ef458ea8101
parentc19d5e1867ef179f118f164a3457cb5366cf4055
scanner: don't emit the extern declarations for external types

We were emitting the extern declarations of all types used in the protocol,
even if not defined in it. This caused warnings to be produced when using
the -Wredundant-decls compiler flag when building an extension that uses
e.g. wl_surface. However we only need the extern declarations if the
protocol defines a factory for those external interfaces. That is a
bad design and can be however done by including the dependent protocol
header first.
So only emit the extern declarations for the types that the protocol
actually defines, this restoring the behavior we were using in 1.7.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=90677

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Arnaud Vrac <rawoul@gmail.com>
src/scanner.c