[libdvdnav-devel] [PATCH] add __DEPRECATED__ modifier which can be used to deprecate API calls where compiler supports it
Lawrence D'Oliveiro
ldo at geek-central.gen.nz
Mon Jan 19 03:25:13 CET 2015
On Mon, 19 Jan 2015 02:02:30 +0000, Timothy Gu wrote:
> AC_MSG_CHECKING
> AC_MSG_RESULT
Thanks for mentioning those, I shall look at them. :)
>> +#if defined(HAVE_ATTRIBUTE_DEPRECATED)
>> + #define __DEPRECATED__ __attribute__((deprecated))
>> +#else
>> + #define __DEPRECATED__
>> +#endif
>
> This simply won't work...
>
> 1. ifo_read.h does not include config.h, and thus will not ever get
> the definition of HAVE_ATTRIBUTE_DEPRECATED which is defined in
> config.h.
It does work--I did check that. For example, adding the following quick
patch
diff --git a/src/dvdread/ifo_read.h b/src/dvdread/ifo_read.h
index 8b58b61..1436ec6 100644
--- a/src/dvdread/ifo_read.h
+++ b/src/dvdread/ifo_read.h
@@ -215,7 +215,7 @@ int ifoRead_TXTDT_MGI(ifo_handle_t *);
* below are safe: they will not mind if you attempt to free part of
an IFO
* file which was not read in or which does not exist.
*/
-void ifoFree_PTL_MAIT(ifo_handle_t *);
+__DEPRECATED__ void ifoFree_PTL_MAIT(ifo_handle_t *);
void ifoFree_VTS_ATRT(ifo_handle_t *);
void ifoFree_TT_SRPT(ifo_handle_t *);
void ifoFree_VTS_PTT_SRPT(ifo_handle_t *);
and then building, produces the expected warning:
CC src/ifo_read.lo
src/ifo_read.c: In function ‘ifoClose’:
src/ifo_read.c:496:3: warning: ‘ifoFree_PTL_MAIT’ is deprecated
(declared at src/dvdread/ifo_read.h:218) [-Wdeprecated-declarations]
Of course, it could be working “accidentally”... :)
More information about the libdvdnav-devel
mailing list